您的位置:首页 > 其它

图片圆角优化

2016-07-08 00:00 239 查看
摘要: 把我知道的三种圆角优化进行比较,和网上其他的有点不一样

当我控制器中有很多imageview需要圆角时用得方法

图为:


用Core Animation 测试了下

第一种

-(void)setimageview:(UIImageView *)imageView

{

//开始对imageView进行画图
UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0);
//使用贝塞尔曲线画出一个圆形图
[[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip];
[imageView drawRect:imageView.bounds];

imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();

}


用Core Animation显示有50左右(图片没有保存---)

第二种

imageview.layer.masksToBounds=YES;

imageview.layer.cornerRadius=15;




这个就是显示的30左右(唯一的留图)

第三种

-(void)setimage:(UIImageView *)imageView
{

UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size];

CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];
//设置大小
maskLayer.frame = imageView.bounds;
//设置图形样子
maskLayer.path = maskPath.CGPath;
imageView.layer.mask = maskLayer;

}

用Core Animation显示有20左右(没留图---)

得出结论:

第一种最好,第二种次之,第三种较差

(今天和同事提起多图片圆角优化问题,他说第三种优化的最好,第二种最差,我不相信,然后就写了一下用instruments 验证了一下,果然他说的不对😄)

(如有不对请大家多多指教)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息