在ios9上显示uiwebview中的pdf有时滚动卡住了
我正在开发一个用swift编写的ios应用程序,xcode7
一个视图上有一个UIWebView
。
使用loadRequest(NSURLRequest)
我们从磁盘加载一个PDF文件。 这工作正常,但有时PDF文件不能滚动通过第一页或你看到的第一个在屏幕上。 我无法确定是什么原因导致不滚动,因为有时我再次打开同一个文件,然后滚动。
试图滚动,当它不想弹跳屏幕的底部,你可以看到有另一个页面,但你不能滚动到视图。
UIWebView
包含的UIScrollView
(这是默认的)知道有更多的页面,因为它在屏幕上显示“1的3”。
UIWebView
- 有'缩放页面适合'检查
- 已启用'用户交互'检查
- 有'多点触摸'不检查
- 有'autoresize子视图'选中
- 有模式'填充比例'
我已经尝试了以下内容:
- 通过在屏幕上放置一个边框检查滚动视图是否不大于屏幕:不,它适合在屏幕上,并且与您期望的一样大
- 在代码中将内部
UIScrollView.scollEnabled
设置为true
在应用程序中,当显示UIWebview
,它通过折叠上面的元素来在屏幕上resize,但是我已经用固定的高度testing了它,并且它不改变任何东西。
当我在内部UIScrollView
上调用flashScrollIndicators()
时,这与滚动或不滚动一致。 如果您看到滚动条闪烁,则可以滚动。 如果没有,那么你不能滚动过去的第一页。
任何其他的想法,我可以尝试?
这听起来像一个奇怪的UIWebView
问题。 还有两件事你可以检查:
-
旋转后问题是否解决? (曾经发生过这种事)
-
如果您在内部
UIScrollView
上调用flashScrollIndicators
并且没有响应。 内部的UIScrollView
是一个零对象吗?
另一个解决scheme是尝试使用WKWebView
。 它可能会解决这个问题。 只要确保只在iOS的最新版本中使用它。
你也可以下一层,并使用CoreGraphics实现它,因为你在设备本身上有PDF,而不是在网上( 官方文档 )。 这可能是一个很好的CocoaPod或Carthage框架。
潜在的问题是,在加载一个新的PDF之前,UIWebView每次加载“about:blank”,这是最清楚的webviewbuild议的解决scheme被清除。 但是,使用不同页面大小和不同页面数的pdf时,这似乎与内置滚动视图混乱。
在这种情况下,解决scheme是创build一个“空白”pdf与单个页面(也许应用程序的标志,以清楚地为用户区分),而不是加载about:blank,加载这个pdf,而不是显示webview给用户,同时等待真正的pdf下载到设备上。