Correctement la Rotation d'un UITableView avec Transformer sans déconner avec Interface Builder
UiTableView ne fournit pas de Défilement Horizontal en mode paysage.
Mon UiTableView n'est pas en plein écran (je ne peux Donc pas l'utiliser en mode horizontal lors de la rotation de mon contenu, qui sont des images)
J'ai trouvé que pour faire tourner mon UiTableView l'utilisation des Transformations.. j'ai pour le positionner dans Interface Builder en quelque étrange position, de sorte que lors de la rotation, il semble juste à droite.....
Quelqu'un a fait cela sans déconner avec Interface Builder ? Même code?
OriginalL'auteur user82383 | 2009-05-17
Vous devez vous connecter pour publier un commentaire.
Ok, le problème était que, puisque la largeur de la tableview était souple, après la rotation de la largeur des cellules (qui est réel la hauteur) ont également été augmentées. J'ai surmonté le problème en sous-classement de la UITableView et en remplaçant la layoutSubviews méthode, de sorte qu'il ressemble à ceci maintenant:
OriginalL'auteur Umair Aamir
Voir d'un redimensionnement automatique des Comportements de l'article sur le Windows et Vues conceptuel guide sur le site d'Apple. Qui explique comment réaliser la rotation automatique du mode portrait à paysage et d'en revenir sans utiliser Interface Builder et sans avoir à gérer manuellement la mise en œuvre de transformations complexes.
À la rotation de votre contenu personnalisé et la désactivation de défilement, voir
shouldAutorotateToInterfaceOrientation:interfaceOrientation
,willRotateToInterfaceOrientation:duration:
, etdidRotateFromInterfaceOrientation:
dansUIViewController
. Vous pouvez mettre en œuvre ces méthodes pour intercepter la rotation des événements, vérifiez l'orientation qui vous déménagez et prendre soin de votre dessin personnalisé et propriétés de réglage de trucs.Modifier
En réponse à votre commentaire, j'ai trouvé ce bit à partir de la La Vue De La Table Guide De Programmation d'Apple:
Peut-être que Apple a jugé le défilement horizontal de la table de vues à l'encontre de leurs human interface guidelines. Je me demande si vous pourriez re-re-définir le comportement de défilement si vous sous-classé
UITableView
, mais ce serait probablement une tonne d'essai et d'erreur. Si vous êtes réellement en mesure d'accomplir cela, je suis certain que beaucoup de gens seraient intéressés à la façon dont vous l'avez fait. J'ai cherché autour en essayant de trouver d'autres solutions, mais je ne pouvais pas trouver quelque chose.Puis encore une fois, Apple ne peut pas permettre à votre application dans l'app store si vous avez fait ceci, en supposant qu'il n'a vraiment briser le HIG.
OriginalL'auteur Marc W
Vous pouvez obtenir ce que vous cherchez en procédant de la manière suivante:
Boum! Vous avez maintenant une horizontale de défilement tableau avec des cellules verticales. Vous pourriez avoir à corriger la largeur et la hauteur de vos cellules et de votre table à tout faire regarder à droite, mais je suppose que cela pourrait vous aider.
Une autre astuce: vous pouvez contrôler le centre de la rotation à l'aide de la table de la couche. anchorPoint de la propriété (c'est un CGPoint). Si vous le réglez ailleurs que dans le centre de la vue des limites, la rotation des effets (et éventuellement d'autres effets) va utiliser ce point comme référence.
OriginalL'auteur Adrian Kosmaczewski
Je sais c'est un peu tard, mais voici ma réponse.
Comme d'autres l'ont dit, pour parvenir à Défilement Horizontal, vous pouvez appliquer un 90 degrés de transformation de la tableview. Mais, pour se débarrasser de l'étrange image bug, vous devez obtenir l'image avant de la transformer, appliquer la transformation, puis de restaurer l'image de l'original.
M_PI_2
au lieu de diviserM_PI
.Mieux vaut tard que jamais! Merci!!!!
OriginalL'auteur Andrei Stanescu