iPhone Programmation: Application de Alpha au parent, mais pas aux vues de l'enfant

StackOverflow https://stackoverflow.com/questions/1582006

  •  21-09-2019
  •  | 
  •  

Question

Est-il possible de définir Alpha à .75 ou .50 (transparent) pour une vue parent mais les vues enfants / contrôles sont opaques (canal Alpha 1.0 - complètement visible).

Chaque fois que je mets Alpha de mon principal UIView à la transparence, toutes les vues de l'enfant / contrôles sont également présentés comme transparents. Y at-il solution?

Était-ce utile?

La solution

Le parent qui agit comme votre arrière-plan doit être changé à un frère avant que le conteneur qui enveloppe vos enfants. De cette façon, vous pouvez régler la transparence sans affecter toute la hiérarchie.

ressemblerait à ceci.

  • <item-container>
    • <item-background>
    • <children-container>
      • <children/>

Cette hiérarchie, aurait le même ordre de visibilité et vous permettent de définir l'opacité indépendamment du contenu du récipient pour les enfants.

Autres conseils

Une façon plus simple est également possible sans les frères et sœurs vues. Ne réglez pas l'alpha directement sur la vue parent. Au lieu d'utiliser

[parentView setBackgroundColor:[[UIColor clearColor] colorWithAlphaComponent:0.5]];

une vue enfant peut avoir sa propre couleur et ne sera pas transparent.

Dans Swift, ce serait

parentView.backgroundColor = UIColor.clearColor().colorWithAlphaComponent(0.7)

Je sais que c'est une réponse tardive, et quelque chose a déjà été accepté, mais j'ai trouvé la meilleure solution pour moi est de ne pas mettre directement la transparence du UIView, mais il est mis en place la couleur d'arrière-plan 0,0,0,0, rendant la couleur totalement transparente.

Pas 100% sûr de ce que vous essayez de faire, mais si vous voulez avoir une vue récipient avec un fond transparent, vous pouvez le faire en définissant la propriété backgroundColor à [UIColor clearColor]. De cette façon, vous pouvez voir à travers l'arrière-plan, mais tous les sous-vues restera opaque. Si vous souhaitez l'arrière-plan pour être juste semi-transparent, utilisez [UIColor colorWithRed: vert: bleu: alpha:].

Si vous voulez toute la vue d'être semi-transparent tandis que d'autres points de vue ne sont pas vous aurez à les rendre frères et sœurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top