UIScroller внутри UIWebView - PullRequest
       14

UIScroller внутри UIWebView

0 голосов
/ 15 июня 2009

Есть ли у кого-нибудь идеи, как получить доступ к классу UIScroller, который является подпредставлением по умолчанию для UIWebView?

Я хочу работать с функциями касаний, масштабирования, панорамирования и прокрутки в веб-просмотре.

Спасибо ..

Ответы [ 2 ]

2 голосов
/ 02 мая 2012

Я знаю, что эта ветка старая, но если кто-то сталкивается с ней, есть новый способ.

Начиная с iOS 5 UIWebView теперь есть свойство с именем scrollView, которое нельзя заменить, но вы можете установить его свойства. Большинство людей просто хотят отключить масштабирование / подпрыгивание / прокрутку все вместе, что можно сделать, установив свойства scrollView, например, если webview является UIWebView:

webview.scrollView.bounces = NO; //Disables webview from bouncing
webview.scrollView.minimumZoomScale = webview.scrollView.maximumZoomScale = 1.0; //Forces zoom to be at 1 (can be whatever you fancy) and disables zooming
webview.scrollView.bouncesZoom = NO; //Disables bouncing when zooming exceeds minimum or maximum zoom

Полагаю, вы могли бы установить делегат для scrollView, если хотите получить больше контроля, хотя для большей безопасности вы можете захотеть сохранить исходный делегат и соответствующим образом вызвать его методы в вашем пользовательском делегате.

Обработка касаний будет более сложной, так как вы не можете заменить scrollView своими собственными обработчиками. Лучшее, что вы можете сделать, - это добавить некоторые распознаватели жестов как часть UIView и попытаться обработать их там, но я думаю, что UIWebView все равно получит события. В качестве альтернативы в iOS 5 они позволяют вам получить доступ к распознавателям жестов непосредственно на UIScrollView.

1 голос
/ 23 июля 2009

Вы можете найти это следующим образом:

[webview objectAtIndex:0]

Это должно быть там, где оно есть. Если нет, поместите это в свой код где-нибудь и запустите программу для поиска индекса UIScroller, и замените 0 выше этим индексом: -

for (UIView *subview in [webView subviews]){
    NSLog(@"subviews  of webView : %@", [[subview class] description]);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...