Donc en ce moment j'ai un UIView
avec un UILabel
dedans. Je veux que l'arrière-plan ait une opacité <1.0 et que l'étiquette ait une opacité de 1.0. Cependant, puisque les alphas se propagent dans la hiérarchie des vues, l'étiquette se retrouve également avec une opacité <1,0.
Est-il possible de faire ce que je veux sans faire de UILabel
une sous-vue d'une autre vue ??
Définissez simplement la couleur d'arrière-plan pour qu'elle soit semi-transparente:
view.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.5f];
Ou, dans Swift:
view.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5)
Ou, Swift 3:
view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
Notez que, dans ce cas particulier, UIColor(white: 0, alpha: 0.5)
est plus concis, mais colorWithAlphaComponent
fonctionnera en général.
En plus d'être disponible en code, vous pouvez également le faire facilement depuis iB:
Vous pouvez définir la couleur d'arrière-plan du UIView
avec une couleur semi-transparente ou rendre l'image elle-même semi-transparente. De cette façon, c'est une propriété de la vue qui est transparente, pas la vue elle-même.