如何将UIView转换为没有背景的UIImage?

11

我有一个包含图钉图片和标签的UIView,我们知道UIView是矩形的,所以如果我将UIView转换为UIImage,UIImage也是矩形的。我想让UIImage像图钉一样,因为如果用户点击背景,UIImage的事件也会被调用... 我想在不保留背景的情况下将UIView转换为UIImage,应该如何实现?

我使用以下方法将UIView转换为UIImage:

-(UIImage *) ChangeViewToImage : (UIView *) view{

UIGraphicsBeginImageContext(view.bounds.size);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
  UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return img;
}

嗯..比如这样的例子,我有一个矩形作为UIView,并在UIView中以三角形的形式进行绘制。然后我想将此UIView转换为UIImage,但我只想要没有背景的三角形,因此图像只是一个三角形..我该怎么做呢?

1个回答

8

一个UIImage总是矩形的。你可以在视图中玩弄不透明度。如果你将除了你的图钉图片以外的所有东西都设置为透明,那么它看起来就像你只有一张图钉图片。

使用方法:

view.backgroundColor = [UIColor clearColor];

使您的视图背景透明。

是的,我知道...问题在于,如果我们在背景处轻触,事件将被调用。我们能否解决这个问题? - user4951
通过adriaan的回答,我认为你可以禁用该视图上的用户交互。 - Emon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接