当UIWebview嵌入在UIScrollview中时,我对UIWebview中的javascript和触摸事件有疑问。
UIScrollview在其中并排显示了许多视图(我将其简称为“子视图”)。每个子视图都是iPad屏幕的大小,左/右滑动应该在下一个/上一个子视图上移动。其中一个子视图是一个UIWebview,我在其中运行一个小的javascript应用程序,在某些情况下使用触摸事件和iScroll组件。
不幸的是,UIWebview嵌入在UIScrollview中的事实(苹果不推荐这种做法:http://developer.apple.com/library/ios/#documentation/uikit/reference/UIWebView_Class/Reference/Reference.html - 看到标有“重要”的方框)不在我手中。
我遇到的问题是关于在UIWebview子视图中滑动时的触摸事件。 如果我加载谷歌主页,例如滑动工作正常,下一个子视图进入视图。但是,当我加载其中一个JS应用程序时,滑动不起作用。
我假设UIWebview组件获取触摸事件并将其传递给其中的Javascript,以便它可以相应地做出响应。那么它是否也将它们传播回UIScrollview?或者是由Javascript代码来确保它不会对事件“stopPropagation”?关于如何协调这些事件的任何信息都将非常感激。
最后,我是一个javascript程序员而不是Objective-c程序员,虽然我理解它的基础知识,即我已经通过斯坦福iTunes iOS系列Objective-C视频中的一些,并编写了一些演示,但就是这样。
非常感谢你的时间。
答案 0 :(得分:0)
失败的网页是否宽于UIWebView
?如果您将scalesPageToFit
属性设置为YES
并禁用UIScrollView
使用的内部UIWebView
上的退回,则可以解决问题。
您可以使用以下功能禁用退回:
for (UIView *view in webView.subviews) {
if (![[view class] isSubclassOfClass:[UIScrollView class]]) continue;
((UIScrollView *)view).bounces = NO;
break;
}
不保证App Store的批准,因为我只将其用于未通过App Store分发的应用程序。