Xcode UIImageView圆角不起作用

时间:2011-10-17 18:46:37

标签: xcode uiimageview

我想让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”。

任何想法我在这里做错了什么? 谢谢!

2 个答案:

答案 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;
}