40 votes

Comment puis-je avoir un UIView opaque en tant que sous-vue d'un UIView semi-transparent?

J'ai un UIView avec un alpha de 0,5 que j'ajoute en tant que sous-vue à ma vue principale afin de griser tout le reste. Je souhaite ajouter une UIView supplémentaire à cette UIView grise en tant que sous-vue. Le problème est que lorsque je le fais, ma sous-vue nouvellement ajoutée est également partiellement transparente.

Existe-t-il un moyen de faire en sorte qu'une sous-vue "ignore" la valeur alpha de son aperçu et soit elle-même totalement opaque?

113voto

Darkngs Points 805

Définissez la couleur de fond alpha d'UIView et non sa alpha directement.

 UIView *view;
...
view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.6];
 

Ce n'est pas la même chose que:

 view.backgroundColor=[UIColor blackColor];    
view.alpha=.6;
 

12voto

Joshua Weinberg Points 22701

Non, pas vraiment. Ce que vous voulez, c'est prendre la vue superposition et lui donner une couleur de fond claire. En tant que sous-vue de cette nouvelle superposition, placez votre vue qui grise. Et en tant que vue jumelle, vous voulez que votre vue soit opaque.

 [OpaqueView] [DimmingView]
     |             |
      [OverlayView]
 

2voto

Rob Napier Points 92148

Ne le mettez pas dans la vue semi-transparente. Faites en sorte que la vue soit semi-transparente et superposée à l'aide de la commande z.

2voto

Hisenberg Points 1342

Cela ne fonctionnera que si vous avez une image sur le fond.

Au lieu de réduire les alpha de UIView , ajoutez un UIImageView à cette vue, puis réduisez le coefficient alpha du UIImageView .

Ajoutez maintenant vos vues secondaires sur les UIView .

vos vues secondaires ne prendront plus la propriété alpha .. :)

1voto

Simon Lee Points 15481

Non, toute vue héritera de l'opacité de son parent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X