iOS开发中设置圆角的几种方法

方式一:设置layer相关的属性

  • 如果这样的设置的view很多,影响流畅性
网友图片
  • 情景一:使用代码设置
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"friendsRecommentIcon"]];
    
// 设置圆角的大小
imageView.layer.cornerRadius = 5;
[imageView.layer setMasksToBounds:YES];
  • 情景二:在xib中设置
    • 利用KVC设置,如下图:
设置 Key Path
展示效果

方式二:画

  • 性能高
  • 可以给UIImage添加一个分类UIImage+Extension
  • 分类中增加一个返回圆形图片的方法,扩展性强
#import <UIKit/UIKit.h>

@interface UIImage (Extension)

- (UIImage *)circleImage;

@end
#import "UIImage+Extension.h"

@implementation UIImage (Extension)

- (UIImage *)circleImage {

    // 开始图形上下文
    UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0);
    
    // 获得图形上下文
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    
    // 设置一个范围
    CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height);
    
    // 根据一个rect创建一个椭圆
    CGContextAddEllipseInRect(ctx, rect);

    // 裁剪
    CGContextClip(ctx);
    
    // 将原照片画到图形上下文
    [self drawInRect:rect];
    
    // 从上下文上获取剪裁后的照片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    // 关闭上下文
    UIGraphicsEndImageContext();
    
    return newImage;
}

具体使用:

// 获得的就是一个圆形的图片
UIImage *placeHolder = [[UIImage imageNamed:@"defaultUserIcon"] circleImage];
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,713评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,523评论 5 13
  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,677评论 7 249
  • 这是第五次写他们了。 说实话,我有些不知如何下笔。我跟他们已然成了朋友,成了熟人,成了不再观察言谈举止的平常人。跟...
    我是太阳神阅读 1,794评论 0 1
  • 练习(5) 一只鸟儿在秋日晨曦中孤单盘旋着,他俯瞰大地,一条忙碌的道路伸向远方,渐渐被远方的丛林吞噬。如果我是只鹰...
    陈三白阅读 3,892评论 12 18