美文网首页开发caseIOS学习iOS Developer
iOS开发——制作圆形头像

iOS开发——制作圆形头像

作者: Originalee | 来源:发表于2016-03-30 02:10 被阅读1100次

在iOS7之后,我们能发现许多应用都开始使用圆形来作为用户头像的形状,代表App就是腾讯QQ了,QQ的头像就是圆形的。

在今天看到美工给的登陆效果图时,我发现也是要求做一个圆形的头像显示效果,在晚上琢磨之后,我打算把这段经验记录一下,因为以后肯定会用到的次数也很多,为此我也专门Category一个类目以便日后使用。效果图如下 :

圆形头像效果图圆形头像效果图

这里可能看得不是特别清楚,实际的效果,在圆形头像的外部还有一个外框,用暗淡的阴影显示。

制作这个圆形头像,我的大体思路就是直接用Core graphic直接绘制,将原本的非圆形图片直接裁剪为圆形,之后再绘制上外面的阴影。

如果对外边框没有要求的同学,可以直接用最简单的方式来设置,我把简单的方法先贴出来:

UIImage * image = [UIImage imageNamed:@"icon_huo"]; 
UIImageView * imageV = self.imageView; 
imageV.layer.masksToBounds = YES; 
imageV.layer.cornerRadius =imageV.frame.size.width / 2 ;

 /**如果需要边框,请把下面2行注释去掉*/

// imageV.layer.borderColor = [UIColor purpleColor].CGColor;

// imageV.layer.borderWidth = 10; 

imageV.image= image;

为了之后代码的复用,以及提高开发效率,我把这个方法做了封装,我直接把封装好的代码贴出来,注释很全,很容易理解,对照着上面的效果图一起看吧。

/**
 *  圆形头像的绘制
 *
 *  @param icon 头像文件名
 *
 *  @return image
 */
+ (instancetype)imageWithIconName:(NSString *)icon{
   
    //边框大小
    CGFloat border = 113.0;
    
    //这里不用管实现的方法,只要你设置一张你想使用的边框图片就可以了
    UIImage *borderImg = [self createImageWithColor:[UIColor colorWithRed:53 green:53 blue:68 alpha:0.32]];
    
    //头像图片
    UIImage *image = [UIImage imageNamed:icon];
    //设置头像白色边框 像素6px
    CGSize size = CGSizeMake(image.size.width + border, image.size.height + border);
    
    //创建图片上下文
    UIGraphicsBeginImageContextWithOptions(size, NO, 0);
    
    //绘制边框的圆
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextAddEllipseInRect(context, CGRectMake(0, 0, size.width, size.height));
    
    //剪切可视范围
    CGContextClip(context);
    
    //绘制边框图片
    [borderImg drawInRect:CGRectMake(0, 0, size.width, size.height)];
    
    //设置头像
    CGFloat iconX = border/2;
    CGFloat iconY = border/2;
    CGFloat iconW = image.size.width;
    CGFloat iconH = image.size.height;
    
    //绘制圆形头像范围
    CGContextAddEllipseInRect(context, CGRectMake(iconX, iconY, iconW, iconH));
    //剪切可视范围
    CGContextClip(context);
    //绘制头像
    [image drawInRect:CGRectMake(iconX, iconY, iconW, iconH)];
    //取出整个头像上下文的图片
    UIImage *iconImage = UIGraphicsGetImageFromCurrentImageContext();
    
    return iconImage;
}

相关文章

  • iOS开发——制作圆形头像

    在iOS7之后,我们能发现许多应用都开始使用圆形来作为用户头像的形状,代表App就是腾讯QQ了,QQ的头像就是圆形...

  • iOS开发 --制作圆形的头像(UIImage)

    有时候我们的应用需要登录,登录后的用户信息中有用户头像,以前使用的方形图片比较丑陋,现在基本所有的应用都是使用圆形...

  • iOS开发——头像设置及本地沙盒保存,圆形头像显示

    今天来讲一讲iOS实际开发中,对于头像的应用。 现在的APP中,对于头像的设置,我们大多采用圆形头像,并且需要支持...

  • iOS 圆形头像

    iOS 显示圆形头像是一个比较常见的需求,之前面试的时候也有被问到。当时答出来的是设置 CALayer 以及在 S...

  • JavaFx制作圆形头像

    国内Fx的资料着实稀少,因此解决了一个问题就记录下来,慢慢的就便多了。前端时间实现了一些问题,没来得及记录现在补上...

  • iOS中把方形图片切成圆形

    在ios开发中,好多时候我们需要圆形的图片(例如:头像),但是美工给我们提供的是方形图片,imageview也是方...

  • iOS开发笔记:实现圆形头像

    初学iOS,记录一下自己遇到的一些问题,也希望能够对别人有所帮助 仔细观察第一张图片,可以发现头像其实还有一个白色...

  • Android开发圆形头像

    目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。 ...

  • Android开发——圆形头像

    两种方法,自己写代码实现,用第三方开源库 一、第三方开源控件RoundedImageViewRoundedImag...

  • IOS 设置圆形头像

    //设置头像为圆形 image.layer.masksToBounds=YES; mage.layer.corne...

网友评论

  • ivanStronger: CGFloat border = 113.0;
    没写错?
  • 酷酷的哀殿:亲,能把 createImageWithColor 这个方法的相关代码贴出来吗
    酷酷的哀殿:@Originalee 贴出来,可以方便别人查看效果
    Originalee:@酷酷的哀殿 我觉得不影响所以没贴 你要我就贴出来
    Originalee:@酷酷的哀殿 这是一个用颜色来绘制一张纯色图片等代码 你可以随便找张图片代替的 确定需要么

本文标题:iOS开发——制作圆形头像

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