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

标签 ios uitableview uiimage core-animation instruments

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

UITableViewCell treated as a blended layer

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

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

有什么办法可以避免这种情况吗?核心动画分析是不精确的艺术(至少对我而言),但我认为它是滚动我的表格 View 时下降到 25 FPS 左右的主要原因。

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

enter image description here

最佳答案

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

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

关于ios - 在 iOS 上使用 resizableImages 时避免混合层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14820185/

相关文章:

ios - 在 iPhone 中将多张图像合并为一张图像

ios - 如何在Objective-c的Xcode中使UIImage工作

ios - 快速转换日期字符串

ios - 编辑模式下具有自定义单元格的 UITableView 不会将单元格推倒

iphone - UITableView 部分索引与搜索栏重叠

iPhone UITableViewCellStyleValue1detailTextLabel重叠textLabel

ios - UIImageJPEGRepresentation 增加 UIImage 大小

ios - 带有 SSL 证书的 AFNetworking

ios - 隐藏UILabel而不占用任何空间

ios - 没有有效的配置文件允许指定的权利 : beta-reports-active