我知道不建议在应用程序移至后台状态时更改任何视图外观,但对于我的特定任务,我不能推迟此活动,我真的很想在用户点击主页按钮后几秒钟内完成它。
这就是我所做的: 我在 UIWebView 中加载网页,加载完成后我更改 contentOffset 和 zoomScale 以制作该网页的特定屏幕截图。当应用程序处于活动应用程序状态时,一切正常。
现在我想添加更多的多任务处理功能。我将上述网页加载和渲染活动封装在一个受保护的后台任务(iOS 任务完成)中,以便即使用户点击主页按钮也能完成它。
我注意到页面加载和网页截图的渲染(使用 renderInContext: 方法)在后台工作得很好,但似乎 webview(即封装的 UIScrollView 实例)对 setContentOffset: 和 setZoomScale: 消息没有反应只要应用程序处于后台。.
所以我问你是否知道改变内容偏移/缩放比例的任何替代方法?(直接在 CALayer 上进行修改?)或者任何“强制”滚动视图甚至在后台执行内容更改的方法。
PS:在 iOS 模拟器上,即使在应用程序后台状态下也一切正常,但在真实设备上却不行。
编辑:我创建了一个简单的演示项目来演示该问题。您可以在此处下载(请阅读 zip 文件中的说明):http ://dl.dropbox.com/u/3556271/BackgroundBugDemo.zip
我感谢每一个提示或提示。谢谢!