18

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

提前致谢,

威廉

4

6 回答 6

38

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

您可以直接访问与 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 的子视图。

于 2013-07-04T12:52:17.240 回答
11

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

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

不知道这是否可以接受,但它构建得很好,我认为它应该可以工作。如果这对您有用,请报告。

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

于 2009-05-11T20:29:47.673 回答
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;  
    }
}
于 2012-03-21T16:22:22.820 回答
4

在斯威夫特:

    webView.scrollView.showsHorizontalScrollIndicator = false
    webView.scrollView.showsVerticalScrollIndicator = false
于 2018-05-06T10:56:52.260 回答
1

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

yourWebView.scrollView.showsHorizontalScrollIndicator = false
yourWebView.scrollView.showsVerticalScrollIndicator = false
于 2017-09-01T10:50:15.070 回答
-1

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

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

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

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

于 2010-03-11T18:05:51.657 回答