web-dev-qa-db-fra.com

Swift Opacité de la couleur d'arrière-plan UIView

J'ai un UIView avec un UILabel dedans. Je veux que UIView ait une couleur de fond blanche, mais avec une opacité de 50%. Le problème avec le paramètre view.alpha = 0.5 est que l'étiquette aura également une opacité de 50%. J'ai donc pensé qu'il serait peut-être possible d'avoir un UIView avec une couleur de fond blanche et une opacité (white_view). et ensuite une autre UIView avec l’étiquette (label_view). Ajoutez ensuite "white_view" à "label_view" en procédant comme suit: label_view.addSubview(white_view). Cela ne fonctionne apparemment pas. J'aimerais faire comme: label_view.backgroundView(white_view) mais vous ne pouvez pas définir une vue d'arrière-plan sur un UIView comme vous pouvez le faire dans un UICollectionView par exemple.

Quelqu'un at-il une idée de la façon de résoudre ce problème?

EDIT Parce que plusieurs réponses sont approximativement les mêmes, je vais le taper ici. Maintenant, j'ai même essayé ceux-ci:

label_view1.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.5)
label_view1.addSubview(firstPlacelbl)
endGameView.addSubview(label_view1)

et

label_view1.backgroundColor = UIColor(white: 1, alpha: 0.5)
label_view1.addSubview(firstPlacelbl)
endGameView.addSubview(label_view1)

Et pourtant, l'étiquette est également affectée par l'alpha et obtient une opacité de 50%. Je ne comprends pas ce que je fais mal parce que je règle uniquement les couleurs alpha à 0,5 et non les étiquettes. Des idées?

53
user2099024

Vous pouvez définir la couleur d'arrière-plan de la vue sur UIColor avec alpha et ne pas affecter view.alpha view?.backgroundColor = UIColor(white: 1, alpha: 0.5).

130
Vitaliy Gozhenko

La définition de la propriété alpha d'une vue affecte ses sous-vues. Si vous voulez simplement que la propriété backgroundColor de la vue d'ensemble d'arrière-plan transparent soit définie sur une couleur dont la composante alpha est inférieure à 1.

view.backgroundColor = UIColor.whiteColor().colorWithAlphaComponent(0.5)
49
mustafa

dans Swift 3.

yourView.backgroundColor = UIColor.black.withAlphaComponent(0.5)

Cela fonctionne pour moi dans xcode 8.2.

Cela peut vous aider.

27
Ashu

Vous pouvez également le définir à partir de InterfaceBuilder en modifiant l'opacité de la couleur:

enter image description here

8
Amani Elsaed

Le problème que vous avez constaté est que view est différent de votre UIView. "vue" fait référence à la vue entière. Par exemple, votre écran d'accueil est une vue.

Vous devez clairement séparer la 'vue' entière de votre 'UIView' et de votre 'UILabel'

Vous pouvez y parvenir en accédant à votre scénario, en cliquant sur l'élément, Inspecteur de l'identité, et en modifiant le Restoration ID.

Maintenant, pour accéder à chaque élément de votre code en utilisant l'ID de restauration

1
Marcus

C'est simple dans Swift. il suffit de mettre cette couleur dans la couleur de votre vue d’arrière-plan et cela fonctionnera.

let dimAlphaRedColor = UIColor.redColor().colorWithAlphaComponent(0.7) yourView.backGroundColor = dimAlphaRedColor

0
Abhimanyu Rathore