(iphone) force scrollViewDidEndDecelerating для вызова после программной прокрутки представления?
Я анимирую свиток с помощью scrollRectToVisible:animated:
Но scrollViewDidEndDecelerating не вызывается.
Есть ли способ заставить функцию вызываться?
Ответ 1
scrollViewDidEndDecelerating не будет вызываться для scrollRectToVisible или setContentOffset (т.е. прокрутки программно). Если вы заметили объявление этого метода в заголовочном файле, в нем четко указано, что он "вызывается пальцем вверх, когда мы двигаемся".
Теперь, чтобы решить вашу проблему, будет вызван делегат scrollViewDidEndScrollingAnimation (для setContentOffset и scrollRectToVisible), который вы можете использовать.
Ответ 2
Как вы уже нашли, scrollViewDidEndDecelerating не всегда вызывается (если вы переместили прокрутку в свой палец и остановили его, он также не будет вызван).
Так как scrollViewDidEndDecelerating - это метод делегата, вы можете заставить его вызывать вот так: