Cocoa学习

我的Cocoa/Cocoa Touch学习笔记

用ImageView和Layer实现图像的圆角显示

昨天写过一个博文,介绍了创建圆角矩形图像的方法。现在,我再介绍一个“显示”圆角图像的方法。

这种方法利用的是UIImageViewlayer的属性,实现把图像显示成圆角,而无需对图像本身进行处理。在开发中,大部分情况下,我们只需要“显示”圆角,而不是“得到”圆角图像。不是么。好了,先看代码:

1
2
3
4
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"sample"]];
//设置圆角半径,只要是imageView的宽/高中较小的一个值的一半或更小的值就可以
imageView.layer.cornerRadius = 10.0;
imageView.layer.masksToBounds = YES;

简单解释一下。每个UIView对象都有一个layer属性,这个layer属性实际上是一个CALayer对象。这个对象负责把UIView对象显示到屏幕上。而layer则有一个cornerRadius属性,用来指定layer的边框圆角。但是光设定这个属性是不够的,因为layer默认会把图像超出边框的部分也显示出来,所以必须指定masksToBounds属性为YES,让layer切掉边框外的部分。最终实现了图像的圆角显示。

这种方法不需要处理图像本身,如果只是为了显示圆角,这是一种非常高效的方法——所以除非你真的需要得到圆角图像对象本身。

(全文完)

Comments