UIImage透明形状

时间:2012-03-12 11:55:40

标签: objective-c uiimageview transparent alpha

在我的iPhone应用程序中,我有两个UIImageViews是圆圈。 我用这个代码:

manPic.layer.cornerRadius=manPic.frame.size.width/2;
manPic.layer.masksToBounds=YES;
womanPic.layer.cornerRadius=womanPic.frame.size.width/2;
womanPic.layer.masksToBounds=YES;

两个圆圈有一些重叠的区域,我希望这个区域只有半透明,以便用户可以一起看到这两个图像。 这个区域不是一个正方形(这很明显,因为它是我们正在谈论的圈子)。

你知道怎么做吗?

1 个答案:

答案 0 :(得分:1)

如果你确实只希望重叠区域是透明的,你可能需要通过具有相当掩蔽逻辑的coregraphics来绘制图像。

但是不需要自定义绘图代码的想法(如果周围视图的颜色是单一纯色)。将两个图像放在视图上。然后在图像顶部添加另一个方形大小的视图以“掩盖”重叠区域。为该视图启用剪裁.clipsToBounds = YES。再将两张图片添加到该视图,并将.alpha设置为0.5(或您想要的)。

所以结构将是:

mainview
-> imageView
-> imageView
-> masking view (clipsToBounds=YES, backgroundColor=mainview.backgroundColor)
    -> imageView with alpha
    -> imageView with alpha