Я знаю, что эта ветка старая, но если кто-то сталкивается с ней, есть новый способ.
Начиная с 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
.