第一种高性能圆角处理的方法
- 使用的视图的
layer.cornerRadius
和layer.masksToBounds
设置圆角
优点:简单
缺点:性能不是很好(会有2次rending passes。首先off-screen画出带圆角的图,然后在视图上画第二次)。
- 示例代码如下:
self.avatarImageView.layer.cornerRadius = self.avatarImageView.gfk_width * .5;
self.avatarImageView.layer.masksToBounds = YES;
self.avatarImageView.layer.borderColor = [UIColor colorWithHexString:@"#1BA2FC"].CGColor;
self.avatarImageView.layer.borderWidth = 1;
在使用这种方法处理圆角问题时,可以在上面代码加上下面两行代码,提高性能
// 下面两行代码用于提高性能的
self.layer.shouldRasterize = YES;
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
提示:还是不建议使用这种方式来处理圆角。(后补:经笔者后面做项目的经验,发现加上面两行代码貌似并没有提高性能,只会将图片变模糊。
)
第二种高性能处理圆角的方法
- 通过UIBezierPath对象设置带圆角的作图区域