关于xcode:如何为UIView创建半透明背景?

How do you create a semi-transparent background for a UIView?

我正在创建一个包含一些部分覆盖UIImageView的文本的UIView。 我希望用户能够阅读文本并仍然对下面的图像保持透视。 我尝试将背景色设置为[UIColor clearColor],但是背景是完全透明的,根据图像颜色很难读取文本。

如果我降低view.alpha = 0.5,则包括文本在内的整个视图都是部分透明的。 我想要的是保留文本并部分减少背景的透明度,以使图像显示透彻。


对于在故事板或.xib中拥有视图的用户,您只需在"界面构建器"中通过在"实用工具"窗格(右侧窗格)中为视图的背景选择选项"清除颜色"即可进行操作。"透明颜色"将为视图提供完全透明的背景。

See screenshot

如果需要部分透明的背景色,请使用颜色选择器选择所需的背景色,然后使用底部的"不透明度"滑块设置透明度。

opacity slider to arrange transparency of the background colour of your view


我认为您的意思是您希望UIView的backgroundColor是半透明的吗?如果要白色/透明使用此:

1
myView.backgroundColor = [UIColor colorWithWhite:myWhiteFloat alpha:myAlphaFloat];

否则,如果要使其成为另一种颜色,请使用常规的UIColor方法:+colorWithRed:green:blue:alpha:


这将起作用。

1
myView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7f];

最终您已经有了颜色,因此可以使用.colorWithAlphaComponent这样的颜色:

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情节提要板的"不透明"滑块。

如果在情节提要中为视图nameOfView设置了BackgroundColor,则在视图控制器的ViewDidLoad中,添加以下行来设置alpha:

1
nameOfView.BackgroundColor = nameOfView.BackgroundColor.ColorWithAlpha( 0.7f );  // A value between 0 and 1.

我相信您应该使用:

1
2
myView.alpha = myAlphaFloat;
myView.opaque = NO;