【发布时间】:2011-12-26 01:06:57
【问题描述】:
我目前正在重写一个调整(在 SpringBoard 本身内部运行),因此(当然)流畅性、速度和效率对我来说是最重要的事情,因为即使是最轻微的不必要的延迟也会花费远离用户体验。
所以我的问题是如何以最小的延迟绕过视图的角落。
显而易见的是:
view.layer.cornerRadius = value;
view.layer.masksToBounds = YES;
但是我听说使用 layer.mask 设置 CALayer 蒙版更快?如果是这样,这两种解决方案中哪一种最好?:https://stackoverflow.com/a/4930166/458205
这段代码使用了遮罩,但是遮罩层也使用了cornerRadius,所以这实际上更快吗?
CALayer *maskLayer = [CALayer layer];
maskLayer.cornerRadius = radius;
// set the mask
self.view.layer.mask = maskLayer;
或者上述链接的解决方案 1 或 this answer 会更有效吗?
我知道我多次引用另一个问题,但是该问题是关于仅掩盖 2 个角(这会引发一些不同的解决方案),但我要求最有效的方法是让 0.6 屏幕大小的视图滚动为圆角尽可能平滑(如此图)。
【问题讨论】:
-
它刚刚从我的脑海中浮现,但你不能只继承 UIView 吗?
-
@Ravi 是的,但是我将在子类中使用哪种方法?这是我的问题。
标签: iphone objective-c ios performance calayer