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设置圆角的三种方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!