программирования UIScrollView кажется одной из самых сложных задач для меня :((iphone) uiscrollview touch. отменить связь содержания и начать прокрутку
меня подвиды в UIScrollView.
Я хочу, чтобы позволить подвидам сначала принять сенсорное событие (и перетаскивать).
когда подвиды думают, он должен отказаться от прикосновений и прокрутка должна начаться, она должна быть в состоянии сказать так, чтобы в Scrollview.
Я экспериментировал с touchesShouldCancelInContentView, но этот метод только вызывается один раз, когда Scrollview думает, что пользователь на самом деле предназначен «прокрутки '
Мне нужно взять под контроль, когда отменить событие touch для подзапросов не зависит от реализации внутреннего uiscrollview.
Моя лучшая стратегия до сих пор является
подкласс ScrollView
- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event
{
SYSLOG(LOG_DEBUG, "MyScrollView touchesBegan");
if (!self.dragging && self.isSubviewTouchable)
[self.nextResponder touchesBegan: touches withEvent:event];
[super touchesBegan: touches withEvent: event];
}
и от подвид из Scrollview
когда подтаблицы необходимо освободить контакт и пусть Scrollview принимать события прикосновения так далее.
self.myScrollView.isSubviewTouchable = false;
[self touchesEnded: touches withEvent: event];
и в классе делегатов scrollView я вернул значение bool.
- (void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
self.myScrollView.isSubviewTouchable = true;
}
Проблема, вызов touchesEnded из подвида фактически не освобождает сенсорное событие это кажется. (Подтаблица продолжает получать тащило даже после touchesEnded вызова) Кроме того, я не вижу Scrollview получить любой контакт событие после того, как мы коснулись вызова, который, как я надеялся.
Любые идеи?
Спасибо
Это применимо к устройству ios 3.12? (здание из 4.x) .. выглядит. от 3.2 .. ммм .. хотя я не уверен, когда документ говорит 3.2, это означает, что устройство должно иметь 3.2+ или библиотеку здания должно быть 3.2+ :( – eugene
Я думаю, что это поддерживается для iOS версии 3.2+, поэтому, если вы работая на устройстве 3.12, он не будет работать. – Ankit