美文网首页iOSiOS
如何高性能的给UIImageView加个圆角?

如何高性能的给UIImageView加个圆角?

作者: 人间微风 | 来源:发表于2016-08-24 17:05 被阅读105次

    一般情况下给 UIImageView 或者说 UIKit 的控件添加圆角都是改变 clipsToBounds 和 layer.cornerRadius,

    这样大约两行代码就可以解决这个问题. 但是, 这样使用这样的方法会强制 Core Animation 提前渲染屏幕的离屏绘制,

    而离屏绘制就会为性能带来负面影响.

    从APP性能优化角度考虑,我们也可以使用另一种比较复杂的方式来为图片添加圆角, 可以用贝塞尔曲线.

    UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];

    imageView.center = CGPointMake(200, 300);

    UIImage *anotherImage = [UIImage imageNamed:@"image"];

    UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);

    [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds

    cornerRadius:50] addClip];

    [anotherImage drawInRect:imageView.bounds];

    imageView.image = UIGraphicsGetImageFromCurrentImageContext();

    UIGraphicsEndImageContext();

    [self.view addSubview:imageView];

    原文链接:http://ask.diveinedu.com/?/question/443

    相关文章

      网友评论

        本文标题:如何高性能的给UIImageView加个圆角?

        本文链接:https://www.haomeiwen.com/subject/norosttx.html