调整UIImageView大小后添加圆角

时间:2016-02-05 07:46:37

标签: ios objective-c uiimageview

向imageview添加圆角时遇到问题。 这是我的代码

CALayer * lay = [imageview layer];
[lay setMasksToBounds:YES];
[lay setCornerRadius:10.0];

[lay setBorderWidth:5.0];
[lay setBorderColor:[[UIColor clearColor] CGColor]];

imageview.layer.rasterizationScale = [UIScreen mainScreen].scale;
imageview.layer.shouldRasterize = YES;

它的工作正常,但如果我正在调整imageview的大小,那么它就不会转弯了。

这是我的调整代码:

[UIView animateWithDuration:0.2 animations:^ {
    [imageview setTransform:CGAffineTransformMakeScale(1.1, 1.1)];

    CALayer * l = [imageview layer];
    [l setMasksToBounds:YES];
    [l setCornerRadius:10.0];

    [l setBorderWidth:5.0];
    [l setBorderColor:[[UIColor clearColor] CGColor]];

    imageview.layer.rasterizationScale = [UIScreen mainScreen].scale;
    imageview.layer.shouldRasterize = YES;

    newimage = imageview.image;

    [[NSUserDefaults standardUserDefaults] setValue:UIImageJPEGRepresentation(newimage,1.1) forKey:@"newimage"];   

}];

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:3)

您可以从故事板或XIB设置转角半径,希望它可以正常工作,请检查This

答案 1 :(得分:0)

Plz导入QuartzCore / QuartzCore.h

然后编写代码......

yourImageView.layer.cornerRadius = yourRadius;

yourImageView.clipsToBounds = YES;

为什么要编写clipsToBounds属性

一个布尔值,用于确定子视图是否仅限于视图的边界。

讨论 将此值设置为YES会导致子视图被剪切到接收器的边界。如果设置为NO,则不会剪切其帧超出接收器可见边界的子视图。默认值为NO。

答案 2 :(得分:-1)

尝试

[UIView animateWithDuration:0.2
                          delay:0.1
                        options: UIViewAnimationOptionCurveEaseOut
                     animations:^
     {
        [imageview setTransform:CGAffineTransformMakeScale(1.1, 1.1)];
     }
     completion:^(BOOL finished)
     {
         [imageview.layer setCornerRadius:10.0];
         imageview.clipsToBounds = YES;
         imageview.layer.masksToBounds = YES;
         [imageview.layer setBorderWidth:5.0];
         [imageview.layer setBorderColor:[[UIColor clearColor] CGColor]];
         newimage = imageview.image;

         [[NSUserDefaults standardUserDefaults] setValue:UIImageJPEGRepresentation(newimage,1.1) forKey:@"newimage"];
     }];

动画完成后你必须圆角。您可以按上述方式完成动画。