我正在努力避免在 iOS 上使用混合图层以提高性能。但是,我注意到我用于 UITableViewCell
的 backgroundView
的可调整大小的图像被标记为混合层:
事实上,使用任何可调整大小的图像——即使是不带透明度的 JPEG——都会导致图层混合,如屏幕截图所示,在 UIImageView< 中首先使用 PNG 然后使用 JPEG 作为可调整大小的图像
。唯一不需要混合层的可调整大小的图像是 1x1 像素图像,见底部:
有什么办法可以避免这种情况吗?核心动画分析是不精确的艺术(至少对我而言),但我认为它是滚动我的表格 View 时下降到 25 FPS 左右的主要原因。
Edit2:经过更多实验,我发现如果我只垂直或水平拉伸(stretch)图像(PNG 或 JPG),它们不会被标记为混合图层。然而,经过更多的实验,我认为这可能是因为仅在一个维度上拉伸(stretch)的图像更小。我的图像未被视为 100x100 混合,而是 150x100。
最佳答案
我创建了一个非常宽的图像并且只在垂直方向拉伸(stretch)它。这不需要混合图层,并为我的表格 View 单元格实现了正确的效果。这并不理想,但由于高度较小,视网膜图像仍然只有 236 字节。
关于ios - 在 iOS 上使用 resizableImages 时避免混合层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820185/