废话不多说,直接上代码
- (void)setCornerRadiusFirstMethod{
self.imageView.image = [UIImageimageNamed:@"123.jpg"];
self.imageView.layer.cornerRadius = self.imageView.frame.size.width / 2;
self.imageView.layer.masksToBounds = YES;
}
- (void)setCornerRadiusSecondMethod{
self.imageView.image = [UIImageimageNamed:@"123.jpg"];
//开始对imageView进行画图
UIGraphicsBeginImageContextWithOptions(self.imageView.bounds.size,NO, 1.0);
//使用贝塞尔曲线画出一个圆形图
[[UIBezierPathbezierPathWithRoundedRect:self.imageView.boundscornerRadius:self.imageView.frame.size.width]addClip];
[self.imageViewdrawRect:self.imageView.bounds];
self.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
//结束画图
UIGraphicsEndImageContext();
}
- (void)setCornerRadiusThirdlyMethod{
self.imageView.image = [UIImageimageNamed:@"123.jpg"];
UIBezierPath* maskPath = [UIBezierPathbezierPathWithRoundedRect:self.imageView.boundsbyRoundingCorners:UIRectCornerAllCornerscornerRadii:self.imageView.bounds.size];
CAShapeLayer* maskLayer = [[CAShapeLayeralloc]init];
//设置大小
maskLayer.frame =self.imageView.bounds;
//设置图形样子
maskLayer.path = maskPath.CGPath;
self.imageView.layer.mask = maskLayer;
}
执行效率:
NSDate* data1 = [NSDatedate];
[selfsetCornerRadiusThirdlyMethod];
double a = [[NSDatedate] timeIntervalSinceDate:data1];
NSLog(@"%f",a);//0.010959
NSDate* data2 = [NSDatedate];
[selfsetCornerRadiusThirdlyMethod];
double b = [[NSDatedate] timeIntervalSinceDate:data2];
NSLog(@"%f",b);//0.000291
NSDate* data3 = [NSDatedate];
[selfsetCornerRadiusThirdlyMethod];
double c = [[NSDatedate] timeIntervalSinceDate:data3];
NSLog(@"%f",c);//0.000145