Dans mon empreinte, avec AutoFeizessubviews = Oui, les soumissions doivent être appelées que la taille de la vue de chaque fois est modifiée. Mais j'ai trouvé que ce n'est pas le cas pour ma vue. Est-ce que mon espoir est faux? P>
4 Réponses :
De ma compréhension, layouplieViews est appelé lorsque la vue est
Désolé pour ma négligence. Je veux dire changement de taille. Mes LayouToux ne sont pas appelés même lorsque sa taille est modifiée.
Si vous avez besoin de quelque chose pour arriver lorsque votre point de vue est redimensionné, vous pouvez également remplacer setbounds: code> et
setFrame: code> pour votre classe pour vous assurer qu'il se passe. Cela ressemblerait à quelque chose comme ça
L'autre raison que je remplace parfois ces méthodes (temporairement) est donc pour que je puisse m'arrêter dans le débogueur et voir quand ils sont appelés et par quel code. P> P>
Merci. Mais je ne demande pas quoi faire pour forcer une mise en page - je sais que je peux appeler SetNeedslayout. Je confirme s'il s'agit d'un protocole défini que chaque fois que la taille de la vue est modifiée, ses soumissions sont appelées ultérieurement. Je pensais que, mais ce que je vois dans mon code le défie, je me demande donc si c'est un virus de SHD ou que ma compréhension est fausse.
Ah, je vois. Je vais demander à quelques amis à Apple et voir quel genre de réponses nous obtenons. Quelle version de Xcode et quelle version du SDK utilisez-vous?
Entre-temps ... Découvrez ce Guide de développeur.apple.com . Il a beaucoup de bonnes informations sur la mise en page.
Selon des sources à Apple, P>
"- [UIView LayOutouSubviews] devrait être appelé lorsque la taille de la vue change." em> p>
"Chaque fois que la taille d'une vue change, Uikit applique les comportements automobiliaires des sous-visions de cette vue, puis appelle la méthode LayouTouSubviews de la vue pour la laisser modifier manuellement les modifications. Vous pouvez implémenter la méthode LayouTUnviews dans des vues personnalisées lorsque Les comportements automobiliaires en eux-mêmes ne cèdent pas les résultats que vous souhaitez. " em> p>
Ils m'ont également référé à cela, du Guide de programmation de la vue pour iOS: P>
À ce stade, votre meilleur mouvement consiste à créer un petit exemple de projet où Layoutsubviews code> n'est pas appelé (ou envoyer votre projet existant) un bug avec Apple utilisant BugReporter et inclure cet exemple de projet avec votre bogue. P>
Merci, je vais essayer de créer un exemple de projet.
Chaque fois que vous souhaitez redimensionner les vues manuellement et redimensionner appelle automatiquement LayouSubviews forte> méthode
Désolé pour ma négligence. Je veux dire changement de taille.