解决layer层圆角引发的性能问题

来源:互联网 发布:java初级程序员简历 编辑:程序博客网 时间:2024/05/23 00:02

有两种方式解决

1.使用 shouldRasterize (之前有文章讲过)

2.使用CAShapeLayer和UIBezierPath
对2举例
- (void)viewDidLoad
{
    [super viewDidLoad];
    //create shape layer
    CAShapeLayer *blueLayer = [CAShapeLayer layer];
    blueLayer.frame = CGRectMake(50, 50, 100, 100);
    blueLayer.fillColor = [UIColor blueColor].CGColor;

    blueLayer.path = [UIBezierPath bezierPathWithRoundedRect:
    CGRectMake(0, 0, 100, 100) cornerRadius:20].CGPath; //这个方法很重要 (这样做并不会比直接用cornerRadius更快,但是它避免了性能问题。
    ?
    //add it to our view
    [self.view.layer addSublayer:blueLayer];
}


0 0
原创粉丝点击