我有一个UIWebView,用于显示各种内容,有时是HTML,有时是PDF / Powerpoint等(这些似乎由相同的基础控件处理)。
我想要做的是利用底层的UIScrollView(UIWebView的子视图)来捕获滚动视图的确切透视图,并在另一个UIWebView中重新创建滚动位置,从而使它们保持同步。
我遇到的问题是,在显示HTML内容时,UIScrollView的zoomScale属性始终为1.0(尽管在显示PDF内容时,zoomScale是正确的)。
我设法找到可以获取HTML页面缩放比例任何线索的唯一地方是在scrollViewDidEndZooming:withView:atScale:委托方法中。我发现atScale:参数似乎提供了一个相对缩放比例,即缩放操作开始之前的缩放比例。因此,例如在缩小时,该参数大于1,在缩小时,该参数小于1,并且它似乎是两个缩放比例之间的相对值,而不是绝对缩放比例。
我进一步发现的是,从根本上讲,HTML和PDF内容由两个不同的底层视图处理:有UIWebBrowserView处理HTML内容,有UIWebPDFView处理PDF的显示。
换句话说,当使用UIWebPDFView时,UIScrollView的zoomScale属性完全可靠(例如,缩小时为1.0,放大时为2.4,例如)。另一方面,UIWebBrowserView则更加琐碎,当询问UIScrollView的zoomScale时,始终返回1.0,但在接收委托回调时,会接收到一个相对值的比例。
因此,我的问题是:
1.这是一个错误吗?(从我所看到的情况来看,这种行为在iOS 4和5上都可见)。
2.如何获取HTML和PDF内容的缩放比例(或其他属性),并以使状态可以被复制并与另一个UIWebView保持同步的方式获得它。
我不必使用zoomScale,因此我可以接受关于如何捕获UIWebView的滚动状态并在另一个UIWebView上重现的其他建议。
我想要做的是利用底层的UIScrollView(UIWebView的子视图)来捕获滚动视图的确切透视图,并在另一个UIWebView中重新创建滚动位置,从而使它们保持同步。
我遇到的问题是,在显示HTML内容时,UIScrollView的zoomScale属性始终为1.0(尽管在显示PDF内容时,zoomScale是正确的)。
我设法找到可以获取HTML页面缩放比例任何线索的唯一地方是在scrollViewDidEndZooming:withView:atScale:委托方法中。我发现atScale:参数似乎提供了一个相对缩放比例,即缩放操作开始之前的缩放比例。因此,例如在缩小时,该参数大于1,在缩小时,该参数小于1,并且它似乎是两个缩放比例之间的相对值,而不是绝对缩放比例。
我进一步发现的是,从根本上讲,HTML和PDF内容由两个不同的底层视图处理:有UIWebBrowserView处理HTML内容,有UIWebPDFView处理PDF的显示。
换句话说,当使用UIWebPDFView时,UIScrollView的zoomScale属性完全可靠(例如,缩小时为1.0,放大时为2.4,例如)。另一方面,UIWebBrowserView则更加琐碎,当询问UIScrollView的zoomScale时,始终返回1.0,但在接收委托回调时,会接收到一个相对值的比例。
因此,我的问题是:
1.这是一个错误吗?(从我所看到的情况来看,这种行为在iOS 4和5上都可见)。
2.如何获取HTML和PDF内容的缩放比例(或其他属性),并以使状态可以被复制并与另一个UIWebView保持同步的方式获得它。
我不必使用zoomScale,因此我可以接受关于如何捕获UIWebView的滚动状态并在另一个UIWebView上重现的其他建议。