27-高性能圆角处理

第一种高性能圆角处理的方法
  • 使用的视图的layer.cornerRadiuslayer.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对象设置带圆角的作图区域

你可能感兴趣的:(27-高性能圆角处理)