有没有人知道如何访问UIScroller类,这是UIWebView的默认子视图?
我想处理webview中的触摸,缩放,平移和滚动功能。
谢谢..
答案 0 :(得分:2)
我知道这个帖子已经老了,但如果有人遇到它,那就有了新方法。
从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 :(得分:1)
您可以通过以下方式找到:
[webview objectAtIndex:0]
那应该是它的位置。如果没有,请将其放在代码中并运行程序以搜索UIScroller的索引,并将上面的0替换为该索引: -
for (UIView *subview in [webView subviews]){
NSLog(@"subviews of webView : %@", [[subview class] description]);
}