【问题标题】:maskToBounds:YES affecting scroll performancemaskToBounds:YES 影响滚动性能
【发布时间】:2011-06-24 19:37:13
【问题描述】:

我在UIScrollView 上有几个UIButtons。我希望按钮有圆角,所以我在每个按钮上调用maskToBounds:。当我这样做并在设备上运行时,滚动帧率非常糟糕(它在模拟器上运行良好)。有关此问题的解决方法的任何想法?

【问题讨论】:

    标签: objective-c ios cocoa-touch uiscrollview uibutton


    【解决方案1】:

    您正在通过调用 maskToBounds: 导致视图在屏幕外合成,这会大大减慢速度。您是否正在渲染自定义按钮图像?如果是这样,请将UIImage -stretchableImageWithLeftCapWidth:topCapHeight: 与包含其圆角边缘的最小宽度的图像一起使用。这允许 GPU 以最有效的方式处理图像的拉伸,同时仍然为您提供一个由图像制成的按钮。 WWDC 2011 视频中有一个关于在 UIKit 中绘图的视频 - 请注意,因为它完全解决了这个问题,以及您可能遇到的其他一些问题。

    几种替代方法:

    【讨论】:

    • 我正在使用自定义按钮图像进行渲染,但即使没有图像也会出现同样的问题。
    • 没关系,我是在回收大提琴。但你是对的,图像的拉伸工作
    • Method "UIImage -stretchableImageWithLeftCapWidth:topCapHeight:" id 自 iOS5 起已弃用。您现在可以使用方法resizableImageWithCapInsets:
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2015-04-08
    • 1970-01-01
    • 2020-07-20
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多