0

有谁知道如何访问 UIScroller 类,这是 UIWebView 的默认子视图?

我想处理 webview 中的触摸、缩放、平移和滚动功能。

谢谢..

4

2 回答 2

2

我知道这个线程很旧,但如果有人遇到它,就会有一种新方法。

从 iOS 5开始,UIWebView现在有一个scrollView您无法替换的属性,但您可以设置它的属性。大多数人只想同时禁用缩放/弹跳/滚动,这可以通过设置 scrollView 的属性来完成,例如 ifwebviewUIWebView

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.

于 2012-05-02T19:01:00.353 回答
1

您可以通过以下方式找到它:

[webview objectAtIndex:0]

那应该是它所在的地方。如果没有,请将其放在代码中的某个位置并运行程序以搜索 UIScroller 的索引,并将上面的 0 替换为该索引:-

for (UIView *subview in [webView subviews]){
    NSLog(@"subviews  of webView : %@", [[subview class] description]);
}
于 2009-07-23T16:01:26.423 回答