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

前端 未结 8 1035
耶瑟儿~
耶瑟儿~ 2021-02-13 10:19

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 undern

相关标签:
8条回答
  • 2021-02-13 10:47

    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

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

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

    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.

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

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

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

    0 讨论(0)
  • 2021-02-13 10:47

    This will work.

    myView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.7f];
    
    0 讨论(0)
  • 2021-02-13 10:52

    For Swift 4+ :

    Black translucent view:

    view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
    
    0 讨论(0)
  • 2021-02-13 10:52

    I believe you should use:

    myView.alpha = myAlphaFloat;
    myView.opaque = NO;
    
    0 讨论(0)
  • 2021-02-13 10:55

    Eventually you already have a color so you could use .colorWithAlphaComponent like this:

    let exampleColor = UIColor.blackColor()
    overlayView.backgroundColor = exampleColor.colorWithAlphaComponent(0.8)
    
    0 讨论(0)
  • 2021-02-13 10:55

    For Xamarin C#, at this time, the visual storyboard does not have the "opacity" slider of Xcode's storyboard mentioned by Bocaxica.

    If you set BackgroundColor for View nameOfView in storyboard, then in your view controller's ViewDidLoad, add this line to set alpha:

    nameOfView.BackgroundColor = nameOfView.BackgroundColor.ColorWithAlpha( 0.7f );  // A value between 0 and 1.
    
    0 讨论(0)
提交回复
热议问题