iPhone - 是否可以在UIWebView中隐藏原生滚动条?

pix*_*eak 15 iphone uiwebview

我想隐藏滚动UIWebView时出现的本机滚动条/滚动条,但仍保持滚动功能不变.这可能吗?

提前致谢,

威廉

Amo*_*kar 35

看来这个问题需要一个更新的答案:

您可以直接访问与Web视图关联的滚动视图.(只读)在iOS 5.0以上版本中.除非在特殊情况下,我认为开发人员不应支持iOS 5.0之前的任何内容.

来自Apple开发人员文档.

@property(nonatomic, readonly, retain) UIScrollView *scrollView
Discussion
Your application can access the scroll view if it wants to customize the scrolling behavior of the web view.

Availability
Available in iOS 5.0 and later.
Declared In
UIWebView.h
Run Code Online (Sandbox Code Playgroud)

现在你可以直接写这样的东西:

webView.scrollView.showsHorizontalScrollIndicator = NO;
webView.scrollView.showsVerticalScrollIndicator = NO;
Run Code Online (Sandbox Code Playgroud)

无需转到webView的子视图.


Ale*_*lds 11

UIWebView不直接继承UIScrollView,但您可以UIScrollViewUIWebView子视图上使用属性:

[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsHorizontalScrollIndicator:NO];
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO];
Run Code Online (Sandbox Code Playgroud)

不知道这是否可以接受,但它构建良好,我认为它应该工作.请报告这是否适合您.

还可以考虑在bugreport.apple.com上向Apple提交功能请求,以将此属性添加到将来的UIWebView实现中.

  • 此代码适用于iOS 4.0 - 5.0,但不适用于iOS 3.1.3.在iOS 4.0-5.0中,"[webview.subviews objectAtIndex:0]"返回_UIWebViewScrollView的实例,可以将其转换为UIScrollView,但在iOS 3.1.3中,它返回UIScroller的实例,无法转换为UIScrollView. (2认同)

Chr*_*ann 5

这样做:

for (id subview in self.myWebView.subviews) {
    if ([[subview class] isSubclassOfClass: [UIScrollView class]]) {
        ((UIScrollView *)subview).bounces = NO; 
        ((UIScrollView *)subview).showsVerticalScrollIndicator = NO;    
        ((UIScrollView *)subview).showsHorizontalScrollIndicator = NO;  
    }
}
Run Code Online (Sandbox Code Playgroud)