美文网首页很常
给UIImageView设置圆角

给UIImageView设置圆角

作者: 落魄的iOS程序员 | 来源:发表于2021-04-17 13:22 被阅读0次

    1、通常情况下图片会价格圆角,这样看起来会美观一些,而我们通常添加圆角的方法都是:imageView.layer.cornerRadius = 10;imageView.clipsToBounds = YES; 这样做会消耗性能,而这样做显得非常简单方便,如果在较多图片的情况下不建议这样做,

    2、可以给UIImage添加生成图片圆角的扩展API,如:

    - (UIImage *)mt_imageWithCornerRadius:(CGFloat)radius {

        CGRect rect = (CGRect){0.f, 0.f, self.size};

        //    创建一个基于位图的上下文(context),并将其设置为当前上下文(context) size图片大小,opaque是否透明,scale缩放比列

        UIGraphicsBeginImageContextWithOptions(self.size, NO, UIScreen.mainScreen.scale);

        //  添加路径 UIGraphicsGetCurrentContext(); 设置绘图的上下文 使用贝塞尔曲线设置路径

        CGContextAddPath(UIGraphicsGetCurrentContext(),[UIBezierPath bezierPathWithRoundedRect:rect cornerRadius:radius].CGPath);

        // context裁剪路径,后续操作的路径

        CGContextClip(UIGraphicsGetCurrentContext());

        [self drawInRect:rect];

        //    获取修改之后的image

        UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

        //    最后移除栈顶的基于当前位图的图形上下文。

        UIGraphicsEndImageContext();

        return image;

    }

    3、最后在使用image的时候调用即可:

    UIImage *mtImage = [[UIImage imageNamed:@“imageName”] mt_imageWithCornerRadius:10];

    imageView.image = mtImage;

    这里需要注意的是圆角设置的时候你过你的image大小和imageVIew大小不一致,那么你的小心使用圆角的数值,不然可能得不到你预想的圆角大小,因为这里是获取图片大小然后设置传入数值的圆角,如果image和imageView大小不一致,那么会同比缩放;

    相关文章

      网友评论

        本文标题:给UIImageView设置圆角

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