2010-05-07 2 views
4

Gurus iPad: Apple veut que nous soutenions toutes les orientations. Je prends cela pour signifier qu'une mise en page particulière devrait soit tourner de sorte que tous les objets soient positionnés relativement les mêmes, sinon, ils devraient être repositionnés, OU deux vues devraient être conçues et construites. Si je m'appuie sur le mécanisme de rotation intégré, les objets sont redimensionnés ou ils chevauchent le bord de la page dans une orientation ou l'autre, ou ils disparaissent complètement de la vue. Je n'arrive pas à trouver les bons paramètres pour aligner clairement les objets afin qu'ils soient visibles dans chaque orientation. Le repositionnement entraîne beaucoup d'instructions if dans le View Controller. Donc, je ne pense pas que Apple avait cela en tête.Positionnement des objets dans les vues lors de la réorientation dans l'iPad

J'ai essayé de remplacer des vues et même d'afficher des contrôleurs dans la méthode "willRotateToInterfaceOrientation", mais cela provoque des plantages ou les vues portrait finissent inopinément en mode paysage et vv. De plus, deux contrôleurs de vue signifie doubler le codage pour la même vue.

Il doit y avoir une bonne façon de gérer les changements d'orientation, mais j'ai cherché sur Internet et la documentation et l'exemple de code en vain pour quelque chose qui fonctionne. Comment est-ce fait correctement?

Merci!

Répondre

0

Passez un peu de temps dans Interface Builder à comprendre ce que "autosizing" et "size & position" font (inspecteur de taille). Ils peuvent être configurés séparément pour chaque UILabel, bouton, barre, image etc.

Également l'échelle à remplir, l'ajustement d'aspect, le remplissage d'aspect etc. sont utiles pour comprendre (l'inspecteur d'attributs). N'oubliez pas de surcharger shouldAutorotateToInterfaceOrientation pour retourner YES et tout devrait fonctionner avec UIViewController et UIView.

-1

Grâce à l'excellente publication au OranLooney.com, j'ai pu obtenir une application web java/icefaces pour redimensionner joliment sur l'ipad.

le cuivrage(); dans le window.orientationchange est là car il semble parfois que sans lui le redimensionnement ne fonctionnera pas (parfois), dans votre cas bien que j'imagine que c'est là que vous voulez mettre le code pour lancer une nouvelle vue.

// a function to parse the user agent string; useful for 
// detecting lots of browsers, not just the iPad. 
function checkUserAgent(vs) { 
    var pattern = new RegExp(vs, 'i'); 
    return !!pattern.test(navigator.userAgent); 
} 
if (checkUserAgent('iPad')) { 
    // iPad specific stuff here 
window.onorientationchange = function() { 
    donnothing(); 
}; 
} 

également si vous comprendre comment autoriser le double clic laissez-nous savoir !!

+0

retour !! patte ... - depuis! est la négation, quel est le but de !! qui résulte dans la déclaration originale alors? –

0

Le recommandé, et tout droit aller de l'avant pour ce faire est la suivante:

  1. Ajouter tous vos sous-vues à la vue principale dans un fichier nib ou dans la méthode viewDidLoad du contrôleur de vue. Remplacez la méthode layoutSubviews de la vue Contrôleur de vue. Dans cette méthode, vérifiez si l'orientation de la vue est portrait ou paysage et définissez la propriété frame de chaque sous-vue en fonction de la taille et de la position souhaitées pour cette orientation.
  2. Appelez ladite méthode [self layoutSubviews] dans la méthode -willRotateToInterfaceOrientation:duration: du contrôleur de vue. Remarque - layoutSubviews peut être appelée automatiquement lorsque la vue tourne, je ne me souviens pas. Sinon, appelez-le vous-même.
0

Rendez-vous sur GitHub et jetez un oeil à la classe NMView de NextMunich (et NMViewController aussi). Très très puissant et assez simple à mettre en œuvre. Fondamentalement, il est conçu pour les personnes qui ont besoin de hiérarchies de vue plus complexes, mais qui ne veulent pas écrire beaucoup de code supplémentaire pour gérer les orientations. Il le fait pour vous une fois que vous l'avez exposé.

Freaking génial. J'ai volé quelques unes de leurs idées sur l'animation de vue après avoir choisi un peu leur cerveau. Ce sont des gens super sympas.

Questions connexes