创建圆形头像和圆角图片

转载 2015年07月09日 20:01:42

IOS7的一个变化是相对于方形图像,更偏爱于使用圆形图像。在内置的应用中可以看到圆形图标或圆形图像,如联系人和电话应用。这篇短文中,我们将探讨CALayer类,以及如何运用它来创建圆形图像或圆角图像。

您可能并没有听说过CALayer类。但是,如果你曾经创建过应用程序,那么你应该以某种方式使用过它。UIKit中的每个视图(例如UIView、UIImageView)都备份在一个CALayer类的实例中(即layer对象)。layer对象用来管理视图的备份存储和处理视图相关的动画。
layer对象提供了多种属性,使用它们来控制视图的可视内容:

  • 背景颜色
  • 边框和边框宽度
  • 阴影颜色,宽度
  • Opacity(不透明度)
  • 圆角半径

Corner radius就是我们用来绘制圆角和圆形图像的属性。

circular-image-featured
与往常一样,了解CALayer是如何工作的最好方法就是使用它。我们将创建一个带有圆形用户头像的简单的profile视图。

快速了解演示项目

首先,下载此项目模板。已经预先创建了profile视图,但编译并运行应用程序时你会发现用户头像是方形的。这个演示项目非常简单,只有一个类ProfileViewController,与storyboard中的视图相关联。

同时,将用户头像图像(UIImageView)与ProfileViewController.h中的profileImageView属性关联起来。

square-corner-image-profile1

创建圆形用户头像

接下来,让我们看看如何通过改变圆角半径,使用户头像转换成一个圆形图像。

打开ProfileViewController.m,并在viewDidLoad:方法中添加下面几行代码:

self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = YES;

每一个视图,都有一个捆绑的layer属性。所以上面的第一行是设置layer对象(CALayer类的一个实例)的圆角半径。将方形图像变成圆形图像,半径应设置为UIImageView宽度的一半。例如,如果方形图像的宽度是100像素。半径应设置为50像素。其次,你必须将clipsToBounds属性设置为YES,这样layer才能生效。

现在编译和运行应用程序,你会得到一个圆形头像。

circular-image-profile

非常容易吧。只需两行代码,图像从方形变为圆形。无需Photoshop。

添加边框

接下来,我们给头像添加边框使它更漂亮点。同样,也只需要两行。在viewDidLoad:方法中,在设置圆角半径的代码后面加入以下两行代码:

self.profileImageView.layer.borderWidth = 3.0f;
self.profileImageView.layer.borderColor = [UIColor whiteColor].CGColor;

我们只是设置了边框的宽度和边框颜色。再次编译并运行应用程序,您现在应该看到一个拥有白色边框的头像。

创建圆角图片

你可以使用同样的方法来创建圆角图像。关键是要改变圆角半径,并将其设置为其他值。比如设置半径为10:

self.profileImageView.layer.cornerRadius = 10.0f;

用户头像现在应该是圆角的了。

square-corner-image-profile

在这里下载完整的Xcode项目,供大家参考 。

——————————————————————-

翻译自:iOS Programming 101: How To Create Circular Profile Picture and Rounded Corner Image

相关文章推荐

Picasso实现下载圆形头像以及圆角图片

在使用Picasso的过程中发现原来Picasso在下载图片的过程中可以直接将下载的图片转换成圆形,这样就 更加方便的使用圆形头像 在xml布局里只是简单的写一个ImageView就可以 然后使用Pi...

Bootstrap—实现圆角、圆形头像和响应式图片

Bootstrap提供了四种用于类的样式,分别是: .img-rounded:圆角 (IE8 不支持),添加 border-radius:6px 来获得图片圆角; .img-circle:圆形 (IE...

圆角、圆形ImageView(头像需求)

在网上找了几个,都只是圆形的,或多或少也都存在一些问题,比如用xutils加载图片时就因为transitationdrawable导致图片不显示问题,自己就改了一下,以下是代码 很简单,具体效果和xm...

fresco实现圆角、圆形头像

http://blog.csdn.net/aotian16/article/details/53334489 效果图 代码 需要注意的地方用注释给出。 可以在git...
  • shb2058
  • shb2058
  • 2017年04月01日 17:01
  • 416

图片圆形和有圆角的方形

  • 2016年07月07日 08:27
  • 25.05MB
  • 下载

Android 自定义圆角图片/头像

之前多次做项目要用圆角图片都去网上找现成的。 今天想想不行,还是得自己学会,所以就看了这篇文章 http://blog.csdn.net/goodlixueyong/article/details/4...

Android 完美实现图片圆角和圆形

  • 2014年04月29日 10:20
  • 1.71MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:创建圆形头像和圆角图片
举报原因:
原因补充:

(最多只允许输入30个字)