maskToBounds:YES影响滚动性能

时间:2011-06-24 19:37:13

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

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

1 个答案:

答案 0 :(得分:1)

你通过调用masksToBounds:来使视图在屏幕外合成,这会使事情变慢。你在渲染自定义按钮图像吗?如果是这样,请使用UIImage -stretchableImageWithLeftCapWidth:topCapHeight:一个图像,该图像是包含圆角边缘的最小宽度。这允许GPU以尽可能最有效的方式处理图像拉伸,同时仍然为您提供由图像制作的按钮。在WWDC 2011上有关于UIKit中绘图的视频会议 - 请注意,因为它正好解决了这个问题,以及您可能会遇到的其他一些内容。

一些替代方法: