Установка contentOffset программно запускает scrollViewDidScroll

У меня есть несколько UIScrollView на странице. Вы можете прокручивать их по отдельности или блокировать их вместе и прокручивать как одно целое. Проблема возникает, когда они заблокированы.

Я использую UIScrollViewDelegate и scrollViewDidScroll: для отслеживания движения. Я запрашиваю contentOffset из UIScrollView , который изменился, а затем отразил изменения в других представлениях прокрутки, установив соответствующее свойство contentOffset .

Отлично .... за исключением того, что я заметил много лишних звонков. Программное изменение contentOffset моих представлений прокрутки вызывает вызов метода делегата scrollViewDidScroll: . Я пробовал использовать вместо него setContentOffset: animated: , но все еще получаю триггер на делегате.

Как я могу программно изменить мои contentOffsets, чтобы не запускать scrollViewDidScroll: ?

Замечания по реализации .... Каждый UIScrollView является частью пользовательского UIView , который использует шаблон делегата для обратного вызова подклассу представляющего UIViewController , который обрабатывает координацию различных contentOffset ценности.

60
задан DBD 23 February 2012 в 17:45
поделиться