我正在努力重写一个调整(在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是否更有效?
我知道我多次引用另一个问题,但是这个问题只是掩盖了两个角落(这会引发一些不同的解决方案)但是我要求最有效的方法让0.6个屏幕大小的视图滚动为尽可能平滑圆角(如此图片)。
答案 0 :(得分:3)
您需要设置rasterizationScale以及view.layer.shouldRasterize。
我通常这样做:
view.layer.shouldRasterize = YES;
view.layer.rasterizationScale = [[UIScreen mainScreen] scale];
如果您没有设置rasterizationScale,它将始终默认为光栅化的比例为1(在这种情况下为非视网膜)。
对我而言,这通常会使我的滚动表现与UITableView相同。
答案 1 :(得分:1)
第一个片段效率更高,因为圆角本身就是一个蒙版。 提高圆角的使用性能: view.layer.shoudRasterize = YES;