2011-07-11 107 views
11

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

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

回答

28

我认为你的意思是你的UIView的backgroundColor是半透明的?如果你想白/透明地使用这样的:

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

否则,如果你希望它是另一种颜色用一般的UIColor方法:+colorWithRed:green:blue:alpha:

+0

我试过以下“self.summaryViewController.view.backgroundColor = [UIColor colorWithWhite:1.0 alpha:0.2];”并没有任何效果。 summaryViewController.view中有许多子视图。会有什么影响? – ChrisP

+0

我得到它的工作。有趣的是,我不得不将命令添加到summaryViewController的viewDidLoad中,而不是在它的父视图控制器中。 – ChrisP

0

我相信你应该使用:

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

这设置整个视图及其内容。杰西的答案设置了backgroundColor。 – grigb

+0

不,这是问题提问者说他​​不想做的事情,因为他试图使文本100%不透明 - 只有*背景颜色*希望是半透明的。 – ToolmakerSteve

29

对于那些在storyboard或.xib中查看视图的用户只需在界面构建器中通过在“实用程序”窗格(右侧窗格)中选择视图背景的“清除颜色”选项来执行此操作。 “清除颜色”将为视图提供完全透明的背景。

See screenshot

如果需要背景颜色是部分透明的,选择与颜色选择器的背景颜色,并使用不透明度滑块在底部设置的透明度。

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

2

最终,你已经有一个颜色,这样你可以使用.colorWithAlphaComponent这样的:

let exampleColor = UIColor.blackColor() 
overlayView.backgroundColor = exampleColor.colorWithAlphaComponent(0.8) 
6

这将工作。

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

对于Xamarin C#,此时,视觉故事板没有Xcode的故事板mentioned by Bocaxica的“不透明度”滑块。

如果你在故事板的视图nameOfView设置BackgroundColor,然后在您的视图控制器的ViewDidLoad,加入这行来设置阿尔法:

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

斯威夫特3+

白色半透明:

view.backgroundColor = UIColor(white: 1, alpha: 0.5) 

或黑色半透明:

 view.backgroundColor = UIColor(red: 0, green: 0, blue: 0, alpha: 0.5)