廢話不多說,直接上代碼
- (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