iOS图片设置圆角的三种方式

废话不多说,直接上代码


- (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




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章