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

时间:2009-05-11 17:49:28

标签: iphone uiwebview

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

提前致谢,

威廉

6 个答案:

答案 0 :(得分: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

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

webView.scrollView.showsHorizontalScrollIndicator = NO;
webView.scrollView.showsVerticalScrollIndicator = NO;

无需转到webView的子视图。

答案 1 :(得分:11)

UIWebView不会直接从UIScrollView继承,但您可以在UIScrollView子视图中使用UIWebView属性:

[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsHorizontalScrollIndicator:NO];
[(UIScrollView*)[webview.subviews objectAtIndex:0] setShowsVerticalScrollIndicator:NO];

不知道这是否可以接受,但它构建正常,我认为它应该可行。请报告这是否适合您。

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

答案 2 :(得分: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;  
    }
}

答案 3 :(得分:3)

在斯威夫特:

    webView.scrollView.showsHorizontalScrollIndicator = false
    webView.scrollView.showsVerticalScrollIndicator = false

答案 4 :(得分:0)

如果有人正在寻找快速解决方案,那么下面是 swift 3.0 的代码

yourWebView.scrollView.showsHorizontalScrollIndicator = false
yourWebView.scrollView.showsVerticalScrollIndicator = false

答案 5 :(得分:-1)

这里似乎有一个答案的开头:

http://discussions.apple.com/thread.jspa?threadID=1781730

如果您禁用用户互动,这似乎会删除滚动条(如果您显示的网页未超出屏幕高度,则可能没问题。)

一种javascript hack似乎也被描述了但是我没有掌握它:/(你需要访问你试图显示的网页,但这可能不是你的情况......)