我正在开发一个用swift编写的ios应用程序,xcode7
视图上有UIWebView
。
使用loadRequest(NSURLRequest)
我们从磁盘加载pdf文件。
这样可以正常工作,但有时pdf文件无法滚动到第一页或您在屏幕上首先看到的内容。我无法确定导致非滚动的原因,因为有时我会再次打开同一个文件,然后滚动。
当它不想弹回屏幕的底部时尝试滚动,你可以看到有另一个页面,但是你无法将其滚动到视图中。
UIScrollView
中包含的UIWebView
(这是默认设置)知道有更多页面,因为它在屏幕上显示“1/3”。
UIWebView
我尝试了以下内容:
UIScrollView.scollEnabled
设置为true
在应用程序中,当显示UIWebview
时,它会通过折叠其上方的元素在屏幕上调整大小,但我已经使用固定高度对其进行了测试,并且它不会改变任何内容。
当我在内部flashScrollIndicators()
上调用UIScrollView
时,这与滚动或非滚动一致。如果您看到滚动条闪烁,则可以滚动。如果没有,那么你无法滚过第一页。
我可以尝试其他任何想法吗?
答案 0 :(得分:2)
这听起来像一个奇怪的UIWebView
问题。
您可以检查另外两件事:
旋转后问题是否已解决? (这曾经发生在我身上)
如果您在内部flashScrollIndicators
上致电UIScrollView
并且没有回应。内部UIScrollView
是否为零对象?
另一种解决方案是尝试使用WKWebView
。它可能会解决问题。请务必仅在最新版本的iOS中使用它。
您还可以使用CoreGraphics降低图层并实现它,因为您在设备本身而不是网络上(official docs)拥有PDF。你可以使用一个很好的CocoaPod或Carthage框架。
答案 1 :(得分:2)
根本问题在于,在加载新的pdf之前,每次都通过加载关于:blank'来清除UIWebView,这是清除webview的最佳建议解决方案。但是,在处理具有不同页面大小和不同页数的pdf时,这似乎与内置的scrollview混乱。
这种情况下的解决方案是创造一种“空白”。 pdf只有一个页面(可能还有一个应用程序标识,以便为用户清楚地区分)而不是加载about:blank,在向用户显示webview之前加载此pdf,同时等待真正的pdf下载到设备。