我想让UIImageView显示圆角,并在Stack Overflow上找到以下代码:
loginImage = [[UIImageView alloc] initWithImage: [UIImage imageNamed:@"BlueSky.jpg"]];
CALayer *l = [loginImage layer];
[l setMasksToBounds:YES];
[l setCornerRadius:5.0];
[loginImage release];
我将此代码添加到我的viewDidLoad方法中,但不幸的是UIImageView没有给我我期待的圆角。我在Interface Builder中正确链接了imageview“loginImage”。
任何想法我在这里做错了什么? 谢谢!
答案 0 :(得分:1)
如果使用Interface Builder创建UIImageView,实际上不需要在代码中手动创建它。
因此,如果使用IB创建UIImageView,代码应该如下所示。
CALayer *l = [loginImage layer];
[l setMasksToBounds:YES];
[l setCornerRadius:5.0];
loginImage.layer = l;
另外,初学者也可以阅读memory management
答案 1 :(得分:0)
-(UIImage *)makeRoundedImage:(UIImage *) image
radius: (float) radius;
{
CALayer *imageLayer = [CALayer layer];
imageLayer.frame = CGRectMake(0, 0, image.size.width, image.size.height);
imageLayer.contents = (id) image.CGImage;
imageLayer.masksToBounds = YES;
imageLayer.cornerRadius = radius;
UIGraphicsBeginImageContext(image.size);
[imageLayer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *roundedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return roundedImage;
}