问题
有谁知道避免在 iOS 上的滚动视图中使用 Web 视图的技术原因(假设您愿意自己禁用在 Web 视图中的滚动)?
如果您查看UIWebView 的 Apple 文档,他们会说:
重要提示:您不应该在 UIScrollView 对象中嵌入 UIWebView 或 UITableView 对象。如果这样做,可能会导致意外行为,因为两个对象的触摸事件可能会混淆并错误处理。
我受过教育的猜测
看起来他们可能会警告您不要将滚动视图放在另一个滚动视图中,因为内部滚动视图和外部滚动视图之间的触摸可能会混淆。
但是,有一个非常正当的理由要UIWebView
在滚动视图中放置一个。Web 视图不仅仅是滚动视图。UIWebView
可以轻松显示范围广泛的网页内容。
如果不需要允许在自身内滚动,并且UIWebView
您使用以下任一方法关闭滚动:
webView.userInteractionEnabled = NO;
或者
webView.scrollView.scrollEnabled = NO;
那么这个设计真的有问题吗?
我想知道这是否部分是原始UIWebView
界面的工件,它没有让您直接(和记录)访问其嵌入式UIScrollView
(以便能够轻松禁用其滚动)。也许 Apple 文档中的这个声明是它的遗产?
项目背景
我问是因为我正在维护一个应用程序(由其他人编写),该应用程序在滚动视图中使用少数 Web 视图,允许在它们之间水平滚动。Web 内容必须被认为是固定的(不可更改),并且每个 HTML 页面只显示一页内容。用户需要能够在页面之间滚动,因此为此选择了多个UIWebViews
内部UIScrollView
。到目前为止,它似乎可以正常工作。
但是,页面显示全屏图像,并且滚动性能是一个问题。但是,我正在尝试确定滚动视图中 Web 视图的基本嵌套(Apple 警告不要这样做)是否真的是问题的一部分。