将图片裁剪为圆边
2015-11-02 13:36
204 查看
如何将图片的边缘裁剪为圆形?
一、 使用cornerRadius:
在IB中选中图片,在Identity面板,在User Defined Runtime Attributes下按+号按钮,添加如下键值:
注意cornerRadius的值为20,是因为图片的大小为40,40/2=20。
然后在属性面板,勾上Clip Subviews:
此时故事板中的图片不会有任何变化,但当你运行App时就可以看到效果:
注意,如果ImageView的长宽不等,得到的是一个圆角矩形:
二、 使用CAShapeLayer
先绘制一个椭圆形的CALayer,如果圆的长宽比为1就是正圆,否则就是椭圆:
let group = CGRectMake(0,0,40,40)
maskLayer=CAShapeLayer()
let maskPath = UIBezierPath(ovalInRect:group)
maskLayer.fillColor=UIColor.whiteColor().CGColor
maskLayer.path = maskPath.CGPath
然后将这个CALayer作为遮罩应用到ImageView:
imageView.layer.mask = maskLayer
得到的结果和上面类似。不同的是,如果group的长宽不等,得到的可能是椭圆形裁剪效果而不是上面的圆角矩形。
一、 使用cornerRadius:
在IB中选中图片,在Identity面板,在User Defined Runtime Attributes下按+号按钮,添加如下键值:
注意cornerRadius的值为20,是因为图片的大小为40,40/2=20。
然后在属性面板,勾上Clip Subviews:
此时故事板中的图片不会有任何变化,但当你运行App时就可以看到效果:
注意,如果ImageView的长宽不等,得到的是一个圆角矩形:
二、 使用CAShapeLayer
先绘制一个椭圆形的CALayer,如果圆的长宽比为1就是正圆,否则就是椭圆:
let group = CGRectMake(0,0,40,40)
maskLayer=CAShapeLayer()
let maskPath = UIBezierPath(ovalInRect:group)
maskLayer.fillColor=UIColor.whiteColor().CGColor
maskLayer.path = maskPath.CGPath
然后将这个CALayer作为遮罩应用到ImageView:
imageView.layer.mask = maskLayer
得到的结果和上面类似。不同的是,如果group的长宽不等,得到的可能是椭圆形裁剪效果而不是上面的圆角矩形。
相关文章推荐
- 请求转发与重定向
- IntelliJ IDEA 使用心得与常用快捷键
- 线性表
- netlink
- Flume学习11_Flume1.5.0的安装使用及传输数据到Hadoop2.2
- Redis 命令速查表
- Linux常用命令集锦
- digit-counts
- 八皇后问题
- HelloWorld编程
- 修改linux最大连接数
- 选项菜单
- centos 编译 vlc-android
- GET请求和POST请求
- 错误笔记(1)——关于克隆虚拟机引发的后续问题
- Java 语言中 Enum 类型的使用介绍
- netfilter
- 高效率http retrofit2.0.2 最新版本
- 读《大道至简》第五章有感
- 泰勒公式与极值问题