使用透明度:透明视图后面的视图应该只透光而不重叠
Working with transparency: View behind transparent view should only shine through and not overlap
我目前正在使用透明度,我希望产生以下效果:
如您所见,这条线占据了整个视图的宽度。此屏幕上还有一些透明的 UIView。这条线似乎在透明的 UIView 下面,如果它重叠,它有另一种颜色,因为上面有透明的 UIView。当没有重叠时,线条获得其正常颜色。
我怎样才能得到这个效果?
我尝试将 UIView 的背景设置为透明,但没有帮助。该线具有其正常颜色并且不与透明度相互作用。此外,我尝试更改视图本身的透明度,但结果相同。
上面的矩形是用代码完成的
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 设计器中创建的。
我是不是漏掉了什么?
都是关于子视图的 z 顺序。
line.SendSubviewToBack (rectangle);
可能不是你想要的。
如果您添加具有正常红色的线条,并添加一个其 alpha 已降低的 UIView,例如0.5,那么你应该得到你想要的效果。
子视图的 z 顺序在我的例子中是正确的。根据颜色,我想要的效果是否可能。所以我做了以下内容:
为淡紫色矩形选择另一种背景颜色并调整 alpha 透明度使其看起来相似。所以像这样:
rectangle.BackgroundColor = UIColor.FromRGBA (245/255.0f,227/255.0f,249/255.0f,0.7f);
我目前正在使用透明度,我希望产生以下效果:
如您所见,这条线占据了整个视图的宽度。此屏幕上还有一些透明的 UIView。这条线似乎在透明的 UIView 下面,如果它重叠,它有另一种颜色,因为上面有透明的 UIView。当没有重叠时,线条获得其正常颜色。
我怎样才能得到这个效果?
我尝试将 UIView 的背景设置为透明,但没有帮助。该线具有其正常颜色并且不与透明度相互作用。此外,我尝试更改视图本身的透明度,但结果相同。
上面的矩形是用代码完成的
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 设计器中创建的。
我是不是漏掉了什么?
都是关于子视图的 z 顺序。
line.SendSubviewToBack (rectangle);
可能不是你想要的。
如果您添加具有正常红色的线条,并添加一个其 alpha 已降低的 UIView,例如0.5,那么你应该得到你想要的效果。
子视图的 z 顺序在我的例子中是正确的。根据颜色,我想要的效果是否可能。所以我做了以下内容:
为淡紫色矩形选择另一种背景颜色并调整 alpha 透明度使其看起来相似。所以像这样:
rectangle.BackgroundColor = UIColor.FromRGBA (245/255.0f,227/255.0f,249/255.0f,0.7f);