使用透明度:透明视图后面的视图应该只是透过而不是重叠

时间:2015-05-29 13:46:10

标签: ios uiview transparency

我目前正在使用透明度,我希望产生以下效果:

Line is behind transparent UIView

如您所见,该线占据了视图的整个宽度。此屏幕上还有一些透明的UIViews。该线似乎在透明的UIView下面,如果它重叠,它有另一种颜色,因为上面透明的UIView。当没有重叠时,线条会得到正常颜色。

我怎样才能获得这种效果?

我试图将UIView的背景设置为透明,但它没有帮助。该线具有正常颜色,不与透明度相互作用。此外,我试图改变视图本身的透明度,但结果相同。

some tries to replicate the effect

上面的矩形用代码

完成
UIView rectangle = new UIView (new CGRect (10, 10, 200, 120));
rectangle.BackgroundColor = UIColor.FromRGBA (204,115,225, 50);

UIView line = new UIView (new CGRect (0, 105, 320, 1));
line.BackgroundColor = UIColor.Red;

View.AddSubview (line);
View.AddSubview (rectangle);

line.SendSubviewToBack (rectangle);

下面的矩形是在iOS设计器中创建的。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

关于Subviews的z顺序。

line.SendSubviewToBack (rectangle);

可能不是你想要的。

如果您添加具有正常红色的线条,并添加一个将其alpha降为例如的UIView。 0.5,那么你应该得到你想要的效果。

答案 1 :(得分:0)

在我的情况下,子视图的z顺序是正确的。根据颜色,我想要的效果是否可能。所以我做了以下几点:

为薰衣草颜色矩形选择另一种背景颜色,并调整Alpha透明度以使其看起来相似。所以像这样:

rectangle.BackgroundColor = UIColor.FromRGBA (245/255.0f,227/255.0f,249/255.0f,0.7f);