【问题标题】:Stretchable image in drawRect causes slow scrollingdrawRect 中的可拉伸图像导致滚动缓慢
【发布时间】:2012-01-22 17:28:13
【问题描述】:

我正在继承 UITableViewCell 并且在 drawRect: 方法中我想绘制一个可拉伸的图像,但我体验到这对滚动性能有很大影响。

有谁知道我如何使用可拉伸的图像并且仍然具有良好的滚动性能?或者,我可以制作五张图像并绘制它们。每个角一个和一个将被拉伸的中心图像。这看起来很麻烦,我实际上认为这就是可拉伸图像的作用。

编辑:如果我应该分割图像并自己拉伸它,它当然应该是九张图像,而不是四张。每个角一个,上中下一个,左中右中一个。

【问题讨论】:

    标签: iphone performance uitableview scroll drawrect


    【解决方案1】:

    尝试使用[UIImage resizableImageWithCapInsets:] 创建可调整大小的图像,而不是您自己的代码。使用图像创建一个 UIImageView 并将其作为子视图添加到索引 0 处的 cell.contentView

    【讨论】:

    • 这给了我更好的表现!不过,将其添加为子视图并不是一个好主意。在 UIImage 上使用 drawInRect:drawAtPoint:
    • 我注意到 resizableImageWithCapInsets: 根据插图之间的间隙宽度选择不同的技术。如果它是 1pt 的差距,那么它使用 UIImageResizingModeStretch 具有更好的滚动性能。如果间隙更大,它使用 UIImageResizingModeTile,它不适合滚动,但非常适合调整 UIImageView 的大小(对于 Stretch 反之亦然)。在 iOS6 中,您可以通过 resizableImageWithCapInsets:resizingMode: 手动选择这些模式。
    • @orj,非常感谢。我很幸运在这里找到了这条信息,并解决了一个让我困了几个星期的问题。你拯救了我的一天!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多