iOS切圆角的方式 第一种方法:通过设置layer的属性 最简单的一种,但是很影响性能,一般在正常的开发中使用很少. UIImageView *imageView = [[UIImag
2017-08-24 10:25
1121 查看
iOS切圆角的方式
这三种方法中第三种最好,对内存的消耗最少啊,而且渲染快速。
作者:FFIB
链接:http://www.jianshu.com/p/e97348f42276
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
第一种方法:通过设置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];
第二种方法:使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角
UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.image = [UIImage imageNamed:@"1"]; //开始对imageView进行画图 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size, NO, [UIScreen mainScreen].scale); //使用贝塞尔曲线画出一个圆形图 [[UIBezierPath bezierPathWithRoundedRect:imageView.bounds cornerRadius:imageView.frame.size.width] addClip]; [imageView drawRect:imageView.bounds]; imageView.image = UIGraphicsGetImageFromCurrentImageContext(); //结束画图 UIGraphicsEndImageContext(); [self.view addSubview:imageView];
第三种方法:使用CAShapeLayer和UIBezierPath设置圆角
首先需要导入<AVFoundation/AVFoundation.h>
#import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; imageView.image = [UIImage imageNamed:@"1"]; 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; imageView.layer.mask = maskLayer; [self.view addSubview:imageView]; }
这三种方法中第三种最好,对内存的消耗最少啊,而且渲染快速。
作者:FFIB
链接:http://www.jianshu.com/p/e97348f42276
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
相关文章推荐
- iOS UI控件的圆角设置,layer属性简单使用
- 【java简单的注解使用方式】用注解代替设置属性方法
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- Java开发桌面程序SWING,设置主窗口位置居中一般使用下面的方法
- iOS开发——UI进阶篇(八)pickerView简单使用,通过storyboard加载控制器,注册界面,通过xib创建控制器,控制器的view创建,导航控制器的基本使用
- 【iOS开发-8】UIButton类型属性简单归纳以及自定义按钮的设置
- Java开发桌面程序SWING,设置主窗口位置居中一般使用下面的方法
- iOS系统UIPickerView的简单使用和方法属性介绍
- iOS 通过storyboard设置UIView或者其他layer图层的圆角
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- Java开发桌面程序SWING,设置主窗口位置居中一般使用下面的方法
- iOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- iOS开发之Core Graphics相关方法的简单使用
- 解析iOS应用的UI开发中懒加载和xib的简单使用方法
- 通过编码方式使用性能计数器来进行性能计数的一个简单例子 - ZT
- iOS开发高级技巧-运行时属性runtime attribute设置视图圆角
- iOS开发遇到的坑之三--使用asi框架在xcode下正常运行,但是打包时却不能进行网络访问
- c++builder上使用TIDTCPServer和TIDTCPClient进行简单通信,如何通过代码动态设置TIDTCPServer的Bindings属性。
- IOS开发通过代码方式使用AutoLayout (NSLayoutConstraint + Masonry)
- iOS 开发之TextView的属性使用和代理方法使用