Comment opaque
alpha
et l'opacité de l'arrière-plan fonctionnent-ils ensemble pour une UIView et quelles sont les différences entre eux?
opaque
signifie ne pas dessiner quoi que ce soit en dessous, même si vous êtes transparent.
L'alpha de la couleur d'arrière-plan n'affecte que la transparence de la couleur d'arrière-plan, et rien d'autre dessiné sur la vue.
alpha
affecte tout ce qui est dessiné dans la vue.
La propriété opaque peut vous donner une augmentation de la vitesse - si vous savez que votre vue aura jamais une transparence, vous pouvez la définir sur YES
et lorsque iOS rend votre vue, elle peut effectuer des optimisations de performances et le rendre plus rapidement. Si ce paramètre est défini sur NO
iOS devra fusionner votre vue avec la vue située en dessous, même si elle ne contient aucune transparence.
L'alpha affectera également l'alpha de la couleur de fond, c'est-à-dire que si la couleur d'arrière-plan est transparente de 0,5 et l'alpha également de 0,5, cela a pour effet de rendre l'alpha 0,25 de la vue d'arrière-plan (0,5 * 0,5).
Pour le très bon réponse par deanWombourne, il vaut la peine d'ajouter que, sauf si vous ne dessinez pas votre propre contenu à l'aide de la méthode drawRect:, la propriété opaque n'a aucun effet.
Il vous suffit de définir une valeur pour la propriété opaque dans les sous-classes de UIView qui dessine son propre contenu en utilisant drawRect : méthode. La propriété opaque n'a aucun effet dans les classes fournies par le système comme UIButton, UILabel, UITableViewCell, etc.
Si vous dessinez votre propre contenu, gardez à l'esprit que l'opaque n'est qu'un indice
Cette propriété fournit un indice au système de dessin sur la façon dont elle doit traiter la vue.
et quelques autres directives du même doc d'Apple:
Si la vue est opaque et ne remplit pas ses limites ou contient un contenu totalement ou partiellement transparent, les résultats sont imprévisibles. Vous devez toujours définir la valeur de cette propriété sur NO si la vue est totalement ou partiellement transparente.