我在uiimageview中有一个uiimage。 uiimage并没有填满整个uiimageview。我试图有一个带圆角的边框,但只是在uiimage周围,而不是整个uiimageview。无法弄清楚如何获得它。我有
homeButtonImage.layer.cornerRadius = 5;
homeButtonImage.layer.masksToBounds = YES;
homeButtonImage.layer.borderColor = [UIColor blackColor].CGColor;
homeButtonImage.layer.borderWidth = 3.0;
但是它绘制了整个uiimageview的边框,而不仅仅是uiimage。帮助
编辑:nvm想通了。我把它作为一个IBOutlet让它弄乱了。答案 0 :(得分:2)
您需要添加[homeButtonImage setMasksToBounds:YES]
,否则不会反映更改。
答案 1 :(得分:0)
我认为最简单的方法是让你的UIImageView对象与UIImage的大小相匹配。 如果您需要在固定大小的视图中包含该图像,请将该UIImageView放在UIView(或其他UIImageView)中。
或者实际上最简单的方法是简单地在图像文件中创建圆形边框,但我认为这不适合你。
你也可以采用复杂的路径和子类UIView并覆盖drawRect
,在实际的UIImage周围剪切上下文并用CGContextDrawImage(ctx, rect, image.CGImage)
绘制它,但我认为这有点过分。
答案 2 :(得分:0)
在imageview上调用sizeToFit
。这应该使它自己调整大小以匹配图像的大小。
答案 3 :(得分: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;
}