在UIApplicationStateBackground状态中更改UIScrollView的zoomScale和contentOffset

我知道当应用程序移动到后台状态时,不建议更改任何视图外观,但对于我的特定任务,我无法推迟此活动,我真的想在用户点击主页按钮后几秒内完成它。

这就是我的工作: 我在UIWebView中加载一个网页,加载完成后,我更改了contentOffset和zoomScale,以便制作该网页的特定屏幕截图。 当应用程序处于活动应用程序状态时,一切正常。

现在我想添加更多的多任务function。 我在受保护的后台任务 (iOS任务完成) 封装了上述网页加载和呈现活动, 以便即使用户点击主页按钮也能完成。

我注意到页面加载和网页截图的渲染(使用renderInContext:方法)在后台工作得很好, 但似乎webview (即封装的UIScrollView实例) 对setContentOffset:和setZoomScale:message没有反应一旦应用程序处于后台。

所以我问你是否知道改变内容偏移/缩放比例的替代方法? (直接在CALayer上进行修改?)或者“强制”滚动视图即使在后台也能执行内容更改的任何方法。

PS:在iOS模拟器上,即使在应用程序后台状态下一切正常,但在实际设备上却没有。

编辑:我创建了一个简单的演示项目来演示这个问题。 你可以在这里下载(请阅读zip文件中的说明): http : //dl.dropbox.com/u/3556271/BackgroundBugDemo.zip

我很欣赏每一个提示或提示。 谢谢!