gpt4 book ai didi

iphone - 缩放 UIWebView

转载 作者:技术小花猫 更新时间:2023-10-29 11:13:35 26 4
gpt4 key购买 nike

我有一个 UIWebView我用它来显示各种内容,有时是 HTML,有时是 PDF/Powerpoint/etc(它们似乎都由相同的底层控件处理)。

我想做的是利用底层 UIScrollView (UIWebView 的 subview )捕捉 ScrollView 的准确视角并在另一个 UIWebView 中重新创建滚动位置,从而使它们保持同步。

我遇到的问题是 zoomScale UIScrollView 的属性(property)总是 1.0在显示 HTML 内容时(尽管在显示 PDF 内容时,zoomScale 是正确的)。

我设法发现,唯一可以了解 HTML 页面缩放比例的地方是 scrollViewDidEndZooming:withView:atScale:。委托(delegate)方法。我发现 atScale:参数似乎提供了一个相对 缩放比例,即缩放操作开始之前的缩放比例。因此,例如在放大时,该参数为 >1,在缩小时为 <1,它似乎是两个缩放比例之间的相对值,而不是绝对缩放比例)。

我进一步发现,从根本上说,HTML 和 PDF 内容由两个不同的底层 View 处理:UIWebBrowserView处理 HTML 内容,以及 UIWebPDFView处理 PDF 的显示。

换句话说,当使用 UIWebPDFView , zoomScale UIScrollView 的属性(property)是完全可靠的(例如 1.0 用于缩小,2.4 用于放大)。另一方面,UIWebBrowserView更加繁琐,当询问 UIScrollView 时为其zoomScale , 总是返回 1.0 ,但是当接收到委托(delegate)回调时,接收到一个比例值,它是一个相对值。

所以我的问题是:-

  1. 这是一个错误吗? (根据我的观察,这种行为在 iOS 4 和 5 上都可以看到)。

  2. 我怎样才能同时获得 zoomScale (或其他一些属性/属性)用于 HTML 和 PDF 内容,并以可以复制状态并与另一个保持同步的方式获取它 UIWebView .

我不喜欢使用 zoomScale ,所以我愿意接受关于 UIWebView 的滚动状态的其他建议。可以在另一个 UIWebView 上捕获和复制.

最佳答案

加载HTML时,正在使用UIWebBrowserView,可以使用

zoomScale = 1.0/webView.scrollView.minimumZoomScale

当然,这是假设您可以可靠地确保 HTML 页面的最小缩放比例为 1.0,因为某些页面可以使用“viewport”元标记更改最小缩放比例。

关于iphone - 缩放 UIWebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8214503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com