0

当 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 代码来确保它不会在事件中“停止传播”?非常感谢有关如何协调这些事件的任何信息。

最后,我不是 javascript 程序员和 Objective-C 程序员,虽然我了解它的基础知识,即我已经浏览了一些斯坦福 iTunes iOS 系列的 Objective-C 视频并编写了一些演示,但仅此而已.

非常感谢你花时间陪伴。

4

1 回答 1

0

失败的页面是否比UIWebView? 如果您将scalesPageToFit属性设置为并禁用内部使用YES的反弹,那应该可以解决问题。UIScrollViewUIWebView

您可以使用以下方法禁用反弹:

for (UIView *view in webView.subviews) {
    if (![[view class] isSubclassOfClass:[UIScrollView class]]) continue;
    ((UIScrollView *)view).bounces = NO;
    break;
}

但不能保证 App Store 的批准,因为我只将它用于未通过 App Store 分发的应用程序。

于 2011-02-18T14:35:13.490 回答