UIWebView允许点击,但阻止滚动
问题描述:
我有一个UIWebView(已被调整大小,以完全包含HTML),我想把这个Web视图到一个UIScrollView以及一些其他视图。UIWebView允许点击,但阻止滚动
如果我在网络视图上设置了userInteractionEnabled = NO
...除了我无法点击网络视图中的链接之外,它完美地工作。但是,如果我在web视图上保留userInteractionEnabled = YES
...,那么如果用户在Web视图内滑动而不是滚动UIScrollView,它会在Web视图内(即滚动视图内)反转文本。
对此有何帮助?
谢谢!
答
拼凑一堆其他的答案......这个作品真的很适合我:
if ([_webView respondsToSelector:@selector(scrollView)]) {
_webView.scrollView.scrollEnabled = NO; // available starting in iOS 5
} else {
for (id subview in _webView.subviews)
if ([[subview class] isSubclassOfClass: [UIScrollView class]])
((UIScrollView *)subview).scrollEnabled = NO;
}
答
是的,现在会发生,它就像是另一个滚动视图上的滚动视图,并且您在滚动子滚动视图时无法滚动父滚动视图。我不认为你想要这样做是可能的。原因如果网页内容的增加那么孩子的WebView是肯定会围绕内滚动....
答
要关闭webView
滚动,你需要做到这一点 -
for(id subview in self.scrollView.subviews)
{
if([[subview class] isSubclassOfClass:[UIWebView class]])
((UIScrollView *)subview).scrolling = NO;
}
这里发生的事情是我们正在遍历主要UIScrollView
&中的所有子视图,关闭滚动以查看UIWebView
。这是可能的,因为UIWebView
从UIScrollView
继承。
希望这会有所帮助。
UPDATE: a correction。正如@lxt指出的那样 - UIWebView不会从UIScrollView继承。它包含一个滚动视图,但Web视图本身只是一个UIView子类。
答
我有一个网页视图“身体”关于我自己的故事板视图。
为了防止滚动“身体”(web视图),这个伟大的工程:
- (void)viewDidLoad{
...
body.scrollView.scrollEnabled=NO;
}
如果文本太大,它就是行为就像HTML5/CSS3的“溢出:隐藏”。
几件事:'UIWebView' *不*从'UIScrollView'继承。它包含一个滚动视图,但Web视图本身只是一个'UIView'子类。此外,这个答案需要稍微调整,以适用于除iOS 5之外的任何操作系统,因为5以前的web视图的scrollView属性并非公开可用。 – lxt
哦,好的,谢谢你的额外信息 –