在iOS上使用resizableImages时避免混合层

Max*_*iel 6 core-animation instruments uitableview uiimage ios

我试图避免在iOS上使用混合层来提高性能.然而,我注意到,可调整大小的图像我使用了backgroundView我的UITableViewCell被标记为混合层:

UITableViewCell被视为混合层

实际上,使用任何可调整大小的图像 - 即使是没有透明度的JPEG - 也会导致图层混合,如此屏幕截图所示,首先将PNG和JPEG用作图像中的可调整大小的图像UIImageView.唯一不需要混合图层的可调整大小的图像是1x1像素图像,从底部看:

第一个图像是PNG,第二个是JPEG,第三个是1x1像素PNG

有什么方法可以避免这种情况吗?核心动画分析是不精确的艺术(至少对我来说),但我认为它是滚动我的桌面视图时降低到大约25 FPS的主要贡献者.

编辑2:经过更多的实验,我发现如果我只是垂直或水平拉伸图像(PNG或JPG),它们就不会被标记为混合图层.然而,在更多的实验中,我认为这可能是因为仅在一个维度上拉伸的图像更小.我的图像在100x100时没有被视为混合,但它是150x100.

在此输入图像描述

Max*_*iel 4

我创建了一个非常宽的图像,并且仅垂直拉伸它。这不需要混合图层,并且为我的表视图单元格实现了正确的效果。这并不理想,但由于高度较小,视网膜图像仍然只有 236 字节。

非常宽的可拉伸图像,不被视为混合图层