iOS开发中圆形图片绘制方案

一般在给图片做圆形处理时,我们用得较多的可能就是 :
ImageView.layer.cornerRadius=Iv.frame.size.width *0.5 ; ImageView.layer.masksToBounds=YES;
这两行代码或许写起来比较方便、容易记起来,又或许是其他什么原因,当然少量的图片处理使用这个是完全没问题的,但是,对这里有个“但是”,但是如果你需要同时对很多图片进行圆角处理的话,建议最好不要使用这种方案,因为它对内存的消耗非常大,很容易导致页面出现卡帧的现象;
那么需要怎么避免这种情况呢,请看👇👇👇
1、在工具类中定义一个方法,在需要处理圆形图片的地方进行调用

/**
 *  imageView添加圆形图片
 *
 *  @param Iv    添加图片空间
 *  @param url   图片URL
 *  @param image 站位image
 */
+(void)imageViewCircular:(nullable UIImageView *)Iv withUrl:(nullable NSString *)url placeholderImage:(nullable NSString *)image{
    
    NSString *imageUrl = [NSString stringWithFormat:@"%@%@",TTPROTOCOL_IMAGE_URL,url];
    [Iv sd_setImageWithURL:[NSURL URLWithString:imageUrl] placeholderImage:image ==nil ? nil :[UIImage imageNamed:image]completed:^(UIImage * _Nullable image, NSError * _Nullable error, SDImageCacheType cacheType, NSURL * _Nullable imageURL) {
        Iv.image=[image circleImage];
       
    }];
    
}

2、写一个UIImage的分类(UIImage+Category )在分类中定义一个方法【-(nullable UIImage *)circleImage 】对image进行处理

-(nullable UIImage *)circleImage{
    //NO代表透明
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
    
    //获得上下文
    CGContextRef ctx =UIGraphicsGetCurrentContext();
    
    CGRect rect =CGRectMake(0, 0, self.size.width, self.size.height);
    CGContextAddEllipseInRect(ctx, rect);
    
    //裁剪
    CGContextClip(ctx);
    
    //将图片画上去
    [self drawInRect:rect];
    
    UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return image;
}

图片的圆角处理的其他的方案,欢迎补充,O(∩_∩)O谢谢!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,608评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 5,161评论 5 13
  • 转载:http://www.jianshu.com/p/32fcadd12108 每个UIView有一个伙伴称为l...
    F麦子阅读 6,393评论 0 13
  • 每个UIView有一个伙伴称为layer,一个CALayer。UIView实际上并没有把自己画到屏幕上;它绘制本身...
    shenzhenboy阅读 3,175评论 0 17
  • 大家好!自我介绍一下: 我是拆书帮上海喜乐分舵舵主、三级拆书家,我就是传说中的~崔律美美哒!(害羞状)(观众笑) ...
    精时力崔律阅读 831评论 11 10