一般有四种方式生成圆形图片:
1 . 图片是圆形的
2 . 方形图片外添加圆形镂空图片(单色背景比较好)
3 .cornerRadius方法设置圆角
aImageView.layer.cornerRadius = aImageView.frame.size.width/2.0;
aImageView.layer.masksToBounds = YES;
4.mask方法设置圆角(慎用,大量消耗内存)
CAShapeLayer *layer = [CAShapeLayer layer];
UIBezierPath *aPath = [UIBezierPath bezierPathWithOvalInRect:aImageView.bounds];
layer.path = aPath.CGPath;
aImageView.layer.mask = layer;
对内存的消耗1<2<3<4;
消耗原因:离屏渲染过多导致性能下降
如果一定使用方法3、4,使用以下方法可以保证帧数55左右:
self.layer.shouldRasterize = YES;
self.layer.rasterizationScale = [UIScreen mainScreen].scale;
上述方法可以使视图渲染内容被缓存起来,从而使帧率不会下降太快。
实测以后发现没有太大区别。
网友评论