【问题标题】:Avoiding blended layers when using resizableImages on iOS在 iOS 上使用 resizableImages 时避免混合图层
【发布时间】:2013-01-27 00:42:31
【问题描述】:

我试图避免在 iOS 上混合图层以提高性能。但是,我注意到我用于 backgroundViewUITableViewCell 的可调整大小的图像被标记为混合图层:

事实上,使用任何可调整大小的图像(即使是没有透明度的 JPEG)都会导致图层混合,如此屏幕截图所示,其中首先使用 PNG,然后使用 JPEG 作为UIImageView 中可调整大小的图像。唯一不需要混合图层的可调整大小的图像是 1x1 像素图像,见底部:

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

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

【问题讨论】:

    标签: ios uitableview uiimage core-animation instruments


    【解决方案1】:

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

    【讨论】:

    • @iWheelBuy 几年前我进行了这些更改,但是性能确实有所提高。
    猜你喜欢
    • 2017-12-15
    • 1970-01-01
    • 2019-11-21
    • 2019-03-19
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多