How do you create a semi-transparent background for a UIView?
我正在创建一个包含一些部分覆盖UIImageView的文本的UIView。 我希望用户能够阅读文本并仍然对下面的图像保持透视。 我尝试将背景色设置为[UIColor clearColor],但是背景是完全透明的,根据图像颜色很难读取文本。
如果我降低view.alpha = 0.5,则包括文本在内的整个视图都是部分透明的。 我想要的是保留文本并部分减少背景的透明度,以使图像显示透彻。
对于在故事板或.xib中拥有视图的用户,您只需在"界面构建器"中通过在"实用工具"窗格(右侧窗格)中为视图的背景选择选项"清除颜色"即可进行操作。"透明颜色"将为视图提供完全透明的背景。
如果需要部分透明的背景色,请使用颜色选择器选择所需的背景色,然后使用底部的"不透明度"滑块设置透明度。
我认为您的意思是您希望UIView的backgroundColor是半透明的吗?如果要白色/透明使用此:
1 | myView.backgroundColor = [UIColor colorWithWhite:myWhiteFloat alpha:myAlphaFloat]; |
否则,如果要使其成为另一种颜色,请使用常规的UIColor方法:
这将起作用。
1 | myView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7f]; |
最终您已经有了颜色,因此可以使用
1 2 | let exampleColor = UIColor.blackColor() overlayView.backgroundColor = exampleColor.colorWithAlphaComponent(0.8) |
对于Swift 4+:
黑色半透明视图:
1 | view.backgroundColor = UIColor.black.withAlphaComponent(0.5) |
迅捷3+
白色半透明:
1 | view.backgroundColor = UIColor(white: 1, alpha: 0.5) |
或黑色半透明:
1 | view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5) |
对于Xamarin C#,此时,可视情节提要板没有Bocaxica提到的Xcode情节提要板的"不透明"滑块。
如果在情节提要中为视图
1 | nameOfView.BackgroundColor = nameOfView.BackgroundColor.ColorWithAlpha( 0.7f ); // A value between 0 and 1. |
我相信您应该使用:
1 2 | myView.alpha = myAlphaFloat; myView.opaque = NO; |