Comment est la relation entre UIView de clipsToBounds et CALayer de masksToBounds?
Un UIView
a un CALayer
. C'est à peu près sûr. Mais les deux semblent fournir quelque chose qui signifie la même chose.
Si j'étais clipsToBounds=YES
, serait-ce aussi l'ensemble de la couche masksToBounds=YES
? Pourquoi des noms différents? Quelqu'un sait?
Vous devez vous connecter pour publier un commentaire.
Ils sont différents des noms, parce que
UIView
etCALayer
sont différents et ont une terminologie différente associée avec eux, mais ils sont fonctionnellement équivalents. Si vous démontezclipsToBounds
vous verrez qu'il appelle justemasksToBounds
(démontage à partir du simulateur de cadre, de sorte x86):code sample
vue ci-dessus pour le côté droit (voir il y a une barre de défilement sur cela), alors vous verrez appel à masksToBounds.Quelqu'un demandé ce qui se passerait si clipToBounds est définie à false et maskToBounds est définie sur true ou il peut être mieux si quelqu'un d'ajouter des captures d'écran
Je suis tombé sur le même problème lorsque j'ai voulu mettre sur le rayon de l'angle et de l'ombre à la fois à la vue.
mais il n'est pas possible parce que dès que j'ai mis masksToBound OUI, il supprime l'ombre mais clip le contenu et si je l'ai mis ou PAS, il montre de l'ombre, mais n'a pas de clip le contenu.
J'ai fait le projet qui l'explique mieux
La compréhension de la ClipToBound Et MasksToBound
Je suis venu à la conclusion que CALayer n'est pas un contenant, mais c'est simplement une classe représentant un rectangle sur l'écran avec le contenu visuel.
chaque dessin fait sur UIView va sur CALayer qui provoque le contenu visuel pour attirer l'