Gol*_*Joe 5 calayer uiscrollview ios
我有一些很好的自定义UIViews使用CALayers来制作一些相当复杂的面具和透明胶片.我花了一段时间才弄清楚如何让它顺利运行,但我发现通过将相关对象包装在容器UIView中,并将容器的layer.shouldRasterize设置为YES,但是将所有包含视图的属性设置为NO ,无论你的混合多么精细,它都能运行.
它基本上是这样的:
UIScrollView中
容器视图(layer.shouldRasterize = YES)
容器...
容器......(等等)
基本上,容器在光栅化时最终成为一个大块图像,从而最大限度地减少了必须完成的光栅化量.但是,这给我带来了新的问题.如果我在UIScrollView中有多个容器,只要其中一个容器在屏幕外滚动,它就会在CoreAnimation分析器中标记为"红色",因此当它在屏幕上向后滚动时必须再次呈现.这导致短暂的口吃.我不明白为什么容器的图层必须再次光栅化.任何人都可以解释这个或者提供一个解决方法吗?谢谢.
您可以保存图层的图像(假设渲染后不会改变),然后在静态 UIImages 之间滚动。
要从 CALayer 创建 UIImage,请尝试 Todd Yandell 的解决方案:
来自 CALayer 的 UIImage - iPhone SDK
或者要从 UIView 创建 UIImage 尝试 Tommy 的解决方案:
如何在视网膜显示上不损失质量的情况下将 UIView 捕获到 UIImage
| 归档时间: |
|
| 查看次数: |
715 次 |
| 最近记录: |