Я кодирую приложение, которое работает во многом как Apple Weather.app: внизу есть UIPageControl и UIScrollView в середине экрана.
В своем коде я реализовал метод - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
, чтобы выяснить, когда пользователь перешел на новую страницу. Если они переходят на новую страницу, я загружаю данные соседних страниц, чтобы ускорить дальнейшее переключение страниц. (В одном из примеров Apple используется - (void)scrollViewDidScroll:(UIScrollView *)sender
, но из-за этого мое приложение на короткое время зависает при загрузке новой страницы, поэтому оно не подходит.)
Этот код работает очень хорошо.
Я использую scrollRectToVisible:
: для программной прокрутки внутри прокрутки, когда пользователь нажимает UIPageControl. Проблема в том, что scrollRectToVisible:
не публикует уведомление в UIScrollViewDelegate, когда завершает прокрутку - поэтому код, отвечающий за загрузку соседних страниц, никогда не вызывается при использовании UIPageControl.
Есть ли способ заставить UIScrollView уведомлять своего делегата, когда он вызывается методом scrollRectToVisible:
? Или мне придется использовать темы, чтобы предотвратить зависание моего приложения?
Спасибо!
- Ry