J'ai un UIScrollView qui contient un tas de sous-vues. Si la vue est initialement chargée en mode paysage ou portrait, la disposition de chacun est correcte. Cependant, quand j'essaie de gérer les changements d'orientation, rien ne se passe.UIScrollView ne pas mettre à jour
Ce que je crois être le problème est que les cadres de sous-vues sont mis à jour, mais pas redessiné.
Je me sers de ce que maintenant pour définir les cadres sur un changement d'orientation:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
int i = 0;
for(UIView *subview in [scroll subviews]) {
if([subview isKindOfClass:[GalleryThumbContainerView class]]) {
[subview setFrame:[self getFrameLandscape:i]];
i++;
} else {
}
}
}
Si l'appareil est en mode portrait et je tourne à aucun paysage des subviews nouveaux cadres sont mis à jour.
Si je garde l'appareil en mode portrait et que je quitte la vue, tous les nouveaux cadres sont mis à jour.
Cela me porte à croire que c'est un problème avec l'ensemble n'étant pas mis à jour. J'ai essayé:
[self.view setNeedsDisplay];
[self.view setNeedsLayout];
[self.scroll setNeedsDisplay];
[self.scroll setNeedsLayout];
Aucune ne fonctionne.
j'ai réussi à « faire » fonctionner par:
- Suppression de tous les sous-vues du ScrollView
- Régler tous les sous-vues nouveau cadre
- Re-Ajout tous les sous-vues en arrière le ScrollView
Il semble y avoir une façon beaucoup plus propre de faire cela.
J'ai également essayé d'ajouter un écouteur de changement d'orientation à ma sous-classe de sous-vues (bouche pleine), et de stocker chaque sous-vues paysage et portrait. Puis passer par l'auditeur. Ce qui n'a pas fonctionné non plus.
Toute aide est très appréciée et merci de votre temps.
Qu'en est-il mettre tous le mode contenu de vues à UIViewContentModeRedraw? http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html –
Redimensionnez-vous également le ScrollView sur le changement d'InterfaceOrientation? – alex
@alex Oui, je suis. – random