从0开始架构一个IOS程序—— 06—iOS设置圆角图片
来源:互联网 发布:哪个清理软件最好 编辑:程序博客网 时间:2024/06/05 14:49
iOS设置圆角的三种方式
1 方法一 通过设置layer的属性
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; //只需要设置layer层的两个属性 //设置圆角 imageView.layer.cornerRadius = imageView.frame.size.width / 2; //将多余的部分切掉 imageView.layer.masksToBounds = YES; [self.view addSubview:imageView];
2 方法二 使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.image = [UIImage imageNamed:@"img"]; //创建位图 //参数二 NO 表示图形不使用透明 //参数三 图像缩放比例为1.0 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, 1.0); //使用贝塞尔曲线画出一个圆形图 [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip]; [imageView drawRect:imageView.bounds]; //从上下文中获取图片 imageView.image = UIGraphicsGetImageFromCurrentImageContext(); //结束画图 关闭图形上下文 UIGraphicsEndImageContext(); [self.view addSubview:imageView];
2.1 UIGraphicsBeginImageContextWithOptions函数解析
函数原型为:void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);size——参数size为新创建的位图上下文的大小。它同时是由UIGraphicsGetImageFromCurrentImageContext函数返回的图形大小opaque—透明开关,如果图形完全不用透明,设置为YES以优化位图的存储。scale—–缩放因子 iPhone 4是2.0,其他是1.0。虽然这里可以用[UIScreen mainScreen].scale来获取,但实际上设为0后,系统就会自动设置正确的比例了。UIGraphicsBeginImageContext创建一个基于位图的上下文(context),并将其设置为当前上下文(context)。方法声明如下:void UIGraphicsBeginImageContext(CGSize size);参数size为新创建的位图上下文的大小。它同时是由UIGraphicsGetImageFromCurrentImageContext函数返回的图形大小。该函数的功能同UIGraphicsBeginImageContextWithOptions的功能相同,相当与UIGraphicsBeginImageContextWithOptions的opaque参数为NO,scale因子为1.0。
3 方法三 使用CAShapeLayer和UIBezierPath设置圆角
需要导入
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];imageView.image = [UIImage imageNamed:@"img"];//定义绘制曲线路径UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:imageView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:imageView.bounds.size];//初始化CAShapeLayer *maskLayer = [[CAShapeLayer alloc]init];//设置大小maskLayer.frame = imageView.bounds;//设置绘制图形曲线maskLayer.path = maskPath.CGPath;//设置layer maskimageView.layer.mask = maskLayer;[self.view addSubview:imageView];
在每一View的layer层中有一个mask属性,他就是专门来设置该View的遮罩效果的。该mask本身也是一个layer层
阅读全文
1 0
- 从0开始架构一个IOS程序—— 06—iOS设置圆角图片
- 从0开始架构一个IOS程序—— 02 — 设置启动图标与启动页面
- 从0开始架构一个IOS程序—— 05— NavigationBar 搭建首页面
- 从0开始架构一个IOS程序——01 — 配制CocoaPods来管理第三方类库
- 从0开始架构一个IOS程序——03 — -分包用添加pch全局引用文件
- 从0开始架构一个IOS程序 ——04— UITabBarController和自定义TabBar 搭建主页面
- ios从0开始
- ios 图片圆角设置
- iOS 设置图片圆角
- iOS图片圆角设置
- 黑马程序员——iOS开发从OS X开始
- iOS—TableView的分割线从边框顶端开始
- iOS 设置圆形图片、圆角图片
- iOS 设置圆形图片、圆角图片
- iOS程序的启动图片图标设置
- iOS学习——UIView圆角图片的设置方法
- [IOS] iOS开篇——开始步入iOS开发者行列
- 圆角图片的设置ios
- GIT 常用语句查询
- Java的基本数据类型之间的转换以及面试题
- hdu 1425 快排
- 捕鱼分鱼程序 C语言
- POJ4143和为给定数
- 从0开始架构一个IOS程序—— 06—iOS设置圆角图片
- 8462:大盗阿福(2.6基本算法之动态规划)
- Springboot系列:Springboot与Thymeleaf模板引擎整合基础教程(附源码)
- 【兴趣书签】喜欢的SOHO家居布局
- Python学习笔记-17.09.15
- Remove Element
- USTCOJ 1127 Laser in Cuboids (思路+容斥原理)
- sqrtx
- oracle日期转换