我正在使用UIWebView来显示HTML格式的文本.我没有加载网页,只是向UIWebView提供了一串HTML.
现在我想在屏幕上设置这个UIWebView的动画,实际上有几个(一次2-10个).UIWebView有点沉重,虽然我还没有尝试过,但我计划做最坏的事情.(我不认为这是不成熟的优化,我几乎肯定这将是一个问题)
为了解决这个问题,我想我可以将UIWebViews的内容转换为UIImages,并为它们设置动画.
所以,我的问题是:
谢谢你的任何建议
我发现了许多将 UIView 转换为 UIImage 的示例,并且它们在视图布局后完美地工作等。即使在我的视图控制器中有很多行,其中一些行尚未显示在屏幕上,我也可以进行转换. 不幸的是,对于表格中太靠下的一些视图(因此尚未“绘制”),进行转换会产生一个空白的 UIImage。
我试过调用 setNeedsDisplay 和 layoutIfNeeded,但这些都不起作用。我什至尝试自动滚动表格,但也许我没有以某种方式(使用线程)确保滚动首先发生,从而在转换发生之前更新视图。我怀疑这是不可能的,因为我发现了各种各样的问题,但都没有找到解决方案。或者,我可以只在 UIImage 中重绘我的整个视图,而不需要 UIView 吗?
来自保罗哈德森的网站
使用任何未显示在屏幕上的 UIView(比如 UITableview 中位于屏幕底部下方的一行。
let renderer = UIGraphicsImageRenderer(size: view.bounds.size)
let image = renderer.image { ctx in
view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)
}
Run Code Online (Sandbox Code Playgroud)