iOS设置圆角的三种方式
第一种方法:通过设置layer的属性
最简单的一种,但是很影响性能,一般在正常的开发中使用很少.
UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(100,100,100,100)]; //只需要设置layer层的两个属性 //设置圆角 imageView.layer.cornerRadius=imageView.frame.size.width/2; //将多余的部分切掉 imageView.layer.masksToBounds=YES; [self.viewaddSubview:imageView];
第二种方法:使用贝塞尔曲线UIBezierPath和CoreGraphics框架画出一个圆角
UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(100,100,100,100)]; imageView.image=[UIImageimageNamed:@"1"]; //开始对imageView进行画图 UIGraphicsBeginImageContextWithOptions(imageView.bounds.size,NO,1.0); //使用贝塞尔曲线画出一个圆形图 [[UIBezierPathbezierPathWithRoundedRect:imageView.boundscornerRadius:imageView.frame.size.width]addClip]; [imageViewdrawRect:imageView.bounds]; imageView.image=UIGraphicsGetImageFromCurrentImageContext(); //结束画图 UIGraphicsEndImageContext(); [self.viewaddSubview:imageView];
第三种方法:使用CAShapeLayer和UIBezierPath设置圆角
首先需要导入<AVFoundation/AVFoundation.h>
#import"ViewController.h" @interfaceViewController() @end @implementationViewController -(void)viewDidLoad{ [superviewDidLoad]; UIImageView*imageView=[[UIImageViewalloc]initWithFrame:CGRectMake(100,100,100,100)]; imageView.image=[UIImageimageNamed:@"1"]; UIBezierPath*maskPath=[UIBezierPathbezierPathWithRoundedRect:imageView.boundsbyRoundingCorners:UIRectCornerAllCornerscornerRadii:imageView.bounds.size]; CAShapeLayer*maskLayer=[[CAShapeLayeralloc]init]; //设置大小 maskLayer.frame=imageView.bounds; //设置图形样子 maskLayer.path=maskPath.CGPath; imageView.layer.mask=maskLayer; [self.viewaddSubview:imageView]; }
这三种方法中第三种最好,对内存的消耗最少啊,而且渲染快速。
以上所述是小编给大家介绍的iOS设置圆角的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!