2009-08-13 5 views
6

J'ai une vue quelque peu transparente (alpha = 0,6) qui a quelques sous-vues. Je voudrais que l'un des sous-aperçus (un UILabel) soit dessiné avec alpha de 1.0 parce que le mélange rend le texte difficile à lire mais en l'ajoutant comme sous-vue de la vue principale, il a adopté la valeur alpha de son parent. Y at-il un moyen de contourner ce comportement? Je crois que je vais devoir l'enlever de la sous-vue, mais je voulais demander et voir si peut-être il me manque quelque chose.Pouvez-vous remplacer la valeur alpha d'un UIView d'un parent dans l'une de ses sous-vues?

Répondre

2

Vous avez raison. Vous devrez déplacer le UILabel hors de la vue transparente pour qu'il soit rendu non transparent.

10

Une autre approche qui a fonctionné facilement est de ne pas modifier le canal alpha sur l'UIView. Au lieu de cela, modifiez la couche alpha sur l'objet backgroundColor de l'UIView.

Bien sûr, cela dépend de la raison pour laquelle vous avez rendu la couche alpha transparente, mais cela a bien fonctionné pour mes besoins.

+0

Merci! Votre solution est beaucoup mieux que d'avoir à créer un autre conteneur. –

13

Brian a raison. Par exemple:

view.backgroundColor = [UIColor colorWithWhite:0 alpha:0.6]; 

fera un fond noir en alpha 0,6 et d'autres vues ne seront pas affectés.

+0

merci, son fonctionnement. – ViruMax

Questions connexes