У меня есть приложение, в котором я обрабатываю локальные HTML-файлы в UIWebView. Файлы, однако, иногда большие, и переход туда, где вы хотите, занимает много времени со скоростью прокрутки по умолчанию. Есть ли способ увеличить вертикальную скорость прокрутки UIWebView?iPhone dev: Увеличьте скорость прокрутки в UIWebView?
ответ
В iOS 5 мы можем получить доступ к объекту scrollView
объекта UIWebView
.
Если вы ориентируетесь IOS 5+, вы можете просто позвонить:
webView.scrollView.decelerationRate = UIScrollViewDecelerationRateNormal;
Искать подвид из UIWebView, который отвечает на -setScrollDecelerationFactor: (это UIScroller - частный класс, единственные подтаблицы из UIScrollView). Вы увидите, что он принимает те же факторы замедления, определенные для класса общественного UIScrollView:
- (void)webViewDidFinishLoad:(UIWebView *)aView {
id decelerator = [aView viewWithSelector:@selector(setScrollDecelerationFactor:)];
[decelerator setScrollDecelerationFactor:UIScrollViewDecelerationRateNormal];
}
Обратите внимание, что метод я использую viewWithSelector: является методом, который я определен в категории UIView. Предположительно, если UIWebView изменится в будущем, мой поиск вернет нуль, и этот метод станет no-op.
Рассматривали добавление # тегов в ваш html на значительных границах?
Вы можете использовать собственный пользовательский интерфейс для реализации закладок или ToC для упрощения навигации или просто вставлять ссылки на соответствующие цели прямо в свой html.
Если вы ускоряете прокрутку, ваше приложение подвержено риску отклонения от нестандартности, поскольку это может смутить пользователей, которые привыкли к просмотру веб-страниц со стандартным «ощущением».
Найти подвид из UIWebView, который является UIScrollView, а затем установить decelerationRate к UIScrollViewDecelerationRateNormal. Это делает UIWebView так же быстро, как обычный UIScrollView.
В iOS 4/5 мы можем просто использовать последний подзаголовок UIWebView.
UIScrollView *scroll = [webView.subviews lastObject];
if ([scroll isKindOfClass:[UIScrollView class]]) {
scroll.decelerationRate = UIScrollViewDecelerationRateNormal;
}
по умолчанию decelerationRate из UIScrollView UIWebView является 0,989324, а UIScrollViewDecelerationRateFast составляет 0,99, а UIScrollViewDecelerationRateNormal является 0,998.
Этот метод не использует какой-либо частный API.
- 1. Как увеличить скорость прокрутки UIWebView?
- 2. Увеличьте скорость прокрутки ExtJS TabBar в TabPanel
- 3. Как увеличить скорость прокрутки на UIWebView
- 4. Увеличьте скорость загрузки запросов
- 5. Увеличьте скорость GKAgent
- 6. Увеличьте скорость кода Matlab
- 7. Увеличьте скорость запросов в PostgreSQL
- 8. пользовательский полоса прокрутки в UIWebView iphone
- 9. iPhone - UIWebView: обнаружение прокрутки пользователя донизу страницы
- 10. iphone dev - индикатор активности прокрутки с таблицей
- 11. iphone UIWebView хранит текущую позицию прокрутки?
- 12. iphone UIWebView - Всегда показывать полосу прокрутки
- 13. Увеличьте скорость цикла для FFT
- 14. Увеличьте скорость рисования SurfaceView Android
- 15. Увеличьте скорость разработки сайта ASP.NET
- 16. Увеличьте скорость запроса MySQL LIKE?
- 17. Увеличьте скорость шифрования AES android
- 18. Pygame: Увеличьте ячейку, замедляйте скорость
- 19. Увеличьте скорость UI-тестирования iOS
- 20. Увеличьте скорость масштабирования при использовании GoJS
- 21. Изменить скорость/DEV/urandom
- 22. Увеличьте скорость перерисовки контура в matplotlib
- 23. Увеличьте скорость первой загрузки в проекте laravel
- 24. Увеличьте скорость передвижения вокруг круга в холсте
- 25. Увеличьте скорость создания таблицы MySQL в Django?
- 26. Скорость прокрутки UITableView
- 27. iPhone Dev: проведите UITableCell
- 28. прокрутки проблемы при добавлении файла в тяжелом UIWebView в Iphone
- 29. iPhone dev: UIWebview сдвигает вертикальное положение при вращающемся устройстве
- 30. iPhone Dev: запуск функции копирования UIResponderStandardEditActions для выбора на UIWebView
Я не был в состоянии сделать это. Я использую следующий код: 'для (UIView * подвид в self.currentScrollView.subviews) { если ([подпанель respondsToSelector: @selector (setScrollDecelerationFactor :)]) { [подпанель setScrollDecelerationFactor: UIScrollViewDecelerationRateNormal];' Но это условие никогда не будет истинным. Любая помощь? –
My -viewWithSelector: метод пересекает иерархию представлений за пределами рассматриваемых объектов. UIScroller скорее всего не является прямым потомком UIWebView, поэтому ваш код не находит его. – MrO
это отклонит ваше приложение. –