向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"];
}];
任何帮助都将不胜感激。
答案 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"];
}];
动画完成后你必须圆角。您可以按上述方式完成动画。