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

时间:2013-02-11 20:22:48

标签: ios uitableview uiimage core-animation instruments

我正在尝试避免iOS上的混合图层以提高性能。但是,我注意到我用于backgroundView的{​​{1}}的可调整大小的图片被标记为混合图层:

UITableViewCell treated as a blended layer

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

The first image is a PNG, the second a JPEG, the third a 1x1 pixel PNG

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

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

enter image description here

1 个答案:

答案 0 :(得分:3)

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

Very wide stretchable image that isn't treated as a blended layer