J'ai commencé à créer un jeu de tic-tac-toe très simple. L'objectif principal est de rendre la vue proportionnelle à toutes les tailles d'écran de tous les appareils iOS. J'ai donc mis l'image sur un ViewController
, je l'ai fait en plein écran, puis je l'ai placée dans une vue de pile. J'ai ajouté des contraintes à cette vue de pile 0 de tous les côtés. Et quand j'ai couru le simulateur, tout semble bien. Mais je reçois un message dans le panneau de la console. Qu'est-ce que ça veut dire?
Tout changement de couche sur un UIStackView
entraînera cet avertissement. Comme le souligne l'avertissement, UIStackView
est un calque de transformation uniquement et il diffère assez légèrement d'un UIView
. Selon la documentation:
UIStackView est une sous-classe sans rendu d'UIView; c'est-à-dire qu'il ne fournit aucune interface utilisateur propre. Au lieu de cela, il gère simplement la position et la taille de ses vues organisées. Par conséquent, certaines propriétés (comme backgroundColor) n'ont aucun effet sur la vue de la pile. De même, vous ne pouvez pas remplacer layerClass, drawRect: ou drawLayer: inContext :.
Plus à ce sujet ici .
Il ne peut pas indiquer la source exacte du problème de l'OP mais, espérons-le, il expliquera pourquoi le comportement de UIStackView
n'est pas le même et ne doit pas être confondu avec UIView
.
Pour quelqu'un qui en a besoin: j'ai défini clipToBounds
sur false dans StackView.
Il semble que ce que vous avez fait soit parfaitement correct.
Cependant, je me demande pourquoi vous avez choisi de mettre votre imageview dans une stackview alors que vous auriez pu aussi facilement épingler les côtés sans la stackview. Je suis un grand fan des stackviews mais elles n'ont pas de sens partout. À moins que vous ne prévoyiez d'ajouter de nouvelles vues et de redimensionner votre tableau ticktactoe, je ne pourrais pas l'utiliser.