iOS设置图片圆角

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

你可能感兴趣的:(iOS设置图片圆角)