IOS启程06—iOS设置圆角图片
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.0UIGraphicsBeginImageContextWithOptions(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 mask
imageView.layer.mask = maskLayer;
[self.view addSubview:imageView];
在每一View的layer层中有一个mask属性,他就是专门来设置该View的遮罩效果的。该mask本身也是一个layer层
IOS启程06—iOS设置圆角图片相关推荐
- IOS中设置圆角图片
2019独角兽企业重金招聘Python工程师标准>>> ##iOS设置圆角的三种方式 <hr/> 1 方法一 通过设置layer的属性 UIImageView *imag ...
- iOS一个简单的设置圆角不引起性能问题的分类
http://www.cocoachina.com/articles/18756 iOS设置圆角矩形和阴影效果 https://www.cnblogs.com/rayshen/p/4900336.ht ...
- iOS 中给view设置圆角头像(类似qq空间头像)
view有一个属性layer,通过设置cornerRadius来设置圆角的半径,view是正方形的才能保证通过调整圆角半径来形成圆形头像 [view.layer setCornerRadius:CGR ...
- Android ImageView到底怎么设置圆角图片?背景圆角?控件圆角?图片圆角?占位图圆角?
前言 在我们实际开发应用的过程中,我想大家或多或少都遇到过需要加载圆角图片的场景,还有一些图片是四周圆角不对称,异性圆角等等情况. 我们可能会去网上或Github上搜索一些RoundImageView ...
- Android之设置资源图片为圆角图片
效果图: 参看以下代码: public class MainActivity extends Activity {private ImageView imageView1;private ImageV ...
- Flutter 圆角图片的几种实现
Flutter 圆角图片的几种实现 圆角图片是 APP 开发中的常用设置,我们在 Flutter 中如何实现呢? 使用 ClipRRect 实现 第一种方式,直接使用 ClipRRect 实现,非常简 ...
- iphone屏幕圆角插件_关于iOS控件设置圆角的一些个人看法(iOS 10.0.2)
写在最前面:该文章使用的机器是iPhone 6(iOS 10.0.2),得出的结果跟iOS 8和iOS 9不太一样,关于iOS 8和iOS 9的结论,在最后有. 这几天看简书上的文章,看到几篇关于控件 ...
- iOS LaunchScreen设置启动图片 启动页停留时间
问题:想实现类似微信启动页一样 设置为一个整页面的图片 问题二:iOS启动页面如何设置多停留一会 新建的iOS 项目启动画面默认为LaunchScreen.xib 如果想实现一张图片作为启动页,如下图 ...
- iOS小技巧之圆角图片
介绍 我们常常希望把用户头像做成圆形,怎么实现这种效果呢 实现 首先我们在视图中拖一个Image控件,设置好图片,做好代码关联 在viewDidLoad方法中实现圆角 override func vi ...
最新文章
- js创建对象的几种方法
- java从入门到入土_Java从入门到入土100天,第四天
- web移动端全屏滚动页面的适配问题
- python各种模块的使用
- 永洪Desktop关于MAC系统使用问题
- mysql事件计划自动_逐步讲解MySQL中定时事件计划的创建
- hello,你知道获取元素有哪几种方式吗?
- Linux下vim常用操作
- Java之注解的定义及使用
- 解决chrome浏览器adobe flash player不是最新版本亲测可用的方法
- python _winreg 操作注册表
- Linux小知识--通过MAC地址查询厂家OUI(成功率很高)
- 显示计算机程序的表格如何打开,如何设置打开excel表格的一个窗口显示多标签...
- 投影坐标系、大地坐标系(地理坐标系)
- epub直接获取书名及书封面
- 最新电脑CPU天梯图
- ndis拨号软件 linux,嵌入式linux系统下NDIS拨号
- HDOJ 1282 回文数猜想
- Qt程序开发通用框架
- 程序员健身总动员:写代码后你胖了几斤?
热门文章
- OpenCV vs Dlib 人脸检测比较分析
- 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...
- 游戏3d建模师的待遇及发展
- 顶尖学府 加州伯克利大学开发高效机器人操纵框架
- 上海纽约大学发布2019届毕业生就业报告,出国深造比高达67%
- opencv-4.5.3 + opencv_contrib-4.5.3 + vtk-9.0.3编译(全流程)
- 安装unzip_史上最详细的WordPress安装教程(六):安装WordPress
- 删除链表的倒数第n个节点 python_LeetCode 19.删除链表的倒数第N个节点(Python)
- linux 好用的 免费的 数据库管理工具 dbeaver
- cv_bridge 调用ros自带的opencv版本的解决