PS:记录自己工作学习中的一些知识;
一、UIImageView
- iOS9之后:
UIImageView使用以下方法是不会触发离屏渲染,所以如果不适配iOS9以前的版本得话,大可放心使用;
imageView.layer.cornerRadius = 30;
imageView.layer.masksToBounds = YES;
- 适配iOS9之前的版本建议使用以下方法,使用CPU渲染,渲染得到的bitmap最后再交由GPU用于显示,得到的结果是一样的;
/**
* On-screen-renderring绘制UIImage矩形圆角
*/
- (UIImage *)imageWithCornerRadius:(CGFloat)radius ofSize:(CGSize)size{
/* 当前UIImage的可见绘制区域 */
CGRect rect = (CGRect){0.f,0.f,size};
/* 创建基于位图的上下文 */
UIGraphicsBeginImageContextWithOptions(size, NO, UIScreen.mainScreen.scale);
/* 在当前位图上下文添加圆角绘制路径 */
CGContextAddPath(UIGraphicsGetCurrentContext(), [UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);
/* 当前绘制路径和原绘制路径相交得到最终裁剪绘制路径 */
CGContextClip(UIGraphicsGetCurrentContext());
/* 绘制 */
[self drawInRect:rect];
/* 取得裁剪后的image */
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
/* 关闭当前位图上下文 */
UIGraphicsEndImageContext();
return image;
}
- 美工切图(可以让美工切一张圆角的遮罩图,盖上去,也是很不错的)
二、UILabel设置圆角
请参考的我另一篇文章有说明,链接奉上:https://www.jianshu.com/p/08ef6e3f922b