Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

xcode

uiview

I am creating a UIView containing some text that partially covers a UIImageView. I want the user to be able to read the text and still maintain a perspective on the image underneath. I have tried setting the background color to [UIColor clearColor], but then the background is totally transparent and it is hard to read the text depending upon the image colors.

If I lower the view.alpha=0.5 the whole view including the text is partially transparent. What I'd like is to maintain the text and reduce the transparency of the background partially, allowing the image to show through.

like image 339
ChrisP Avatar asked Jul 11 '11 19:07

ChrisP


People also ask

How do you make a semi transparent background?

Changing the opacity of the background color only To achieve this, use a color value which has an alpha channel—such as rgba. As with opacity , a value of 1 for the alpha channel value makes the color fully opaque. Therefore background-color: rgba(0,0,0,. 5); will set the background color to 50% opacity.

How do I make a semi transparent background in HTML?

use opacity css property. Do you want a semi transparent background color or image? Add this to your CSS background-color:rgba(255,0,0,0.5) . Increase or decrease the 0.5 to lower or raise the opacity.


1 Answers

OPTION 1 - USING STORYBOARDS

For those who have their view in a storyboard or .xib, you simply do it in interface builder by selecting the option "Clear Color" for the Background of the view in the Utilities Pane (the pane on the right). "Clear Color" will give the view a completely transparent background.

See screenshot

If you need a background color that is partially transparent, select the desired background color with the color picker and use the Opacity slider at the bottom to set the transparency.

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


OPTION 2 - USING COLOR ASSETS (AND STORYBOARDS)

Another very useful option is to add colors to your .xcassets library, so that you can use the same color easily in different views. You can make these colors (semi-)transparent as well, here's how:

  1. Open your .xcassets library
  2. Add a Color Set

Add a Color Set to your xcassets library

  1. Give it a useful name and select the color thumbnail

Give it a useful name and select the color thumbnail you'd like to adjust/create

  1. In the Attributes Inspector you can then change the color and use the slider to adjust its opacity

Create the color and use the Opacity slider to adjust it's transparency

  1. Go back to your storyboard and select the view you need this transparent background color
  2. In the Background option of in the Attributes Inspector you can now select the Color you added to your .xcassets library. This is very useful if you have multiple views across your app using the same background.

You can now select the color you just created in your storyboard

In code you can access the colors from your Color Assets using:

SWIFT (UIColor): UIColor(named: "DP Textfield")

SWIFTUI (Color): Color("DP Textfield")

like image 57
Bocaxica Avatar answered Nov 06 '22 22:11

Bocaxica