2010-12-31 6 views
2

J'essaie d'obtenir une autoresizing pour travailler avec une visionneuse de PDF que j'ai construite pour iPad.Autoriser les UIViews pour une visionneuse PDF

Ma structure de vue se compose de:

Scroll view 
    Document view 
     Page view 
     Page view 
     Page view 

Comme le montre ce schéma: http://i.stack.imgur.com/unV4J.png

Je n'ai pas de problème avec l'affichage des pages PDF. Disons aux fins de cette question que chaque page est un UIImageView.

Pour créer la vue, chargez toutes les pages une par une, et réglez les images de sorte qu'elles aient la taille correcte et un espacement de 10 pixels entre elles. Ensuite, je définis le cadre de vue de document à la taille totale de toutes les pages. J'ajoute ensuite la vue du document à la vue déroulante. Cela fonctionne bien.

Le problème est avec autoresizing. Je souhaite que la largeur de la vue du document (et des pages vues à l'intérieur) soit mise à l'échelle lorsque la largeur de la vue défilée est mise à l'échelle. La vue du document et les pages doivent évidemment conserver leur format, de sorte que la largeur et la hauteur doivent être flexibles. Cependant, si je rends la hauteur de la page flexible, la hauteur du cadre de la page devient celle de la vue du document.

J'ai joué pendant des heures maintenant en essayant d'obtenir cette disposition correctement, mais je n'ai eu aucun succès. Auparavant, je viens de mettre à jour les cadres sur la rotation, mais ce serait bien de travailler avec le redimensionnement en douceur.

Répondre

0

J'ai résolu ce par programme.

J'ai d'abord essayé d'utiliser la méthode layoutSubviews UIView pour repositionner les sous-vues lors du redimensionnement. Cependant, cela ne s'est produit qu'une seule fois au début d'une animation (à l'aide de MGSplitViewController, cela peut être différent dans d'autres situations), donc j'ai remplacé la méthode setFrame pour repositionner les sous-vues. Cela fonctionne très bien et maintenant mes vues s'animent doucement là où elles devraient être.

Si quelqu'un d'autre peut m'aider à utiliser autoresizing alors je considérerais que c'est une meilleure réponse, mais pour le moment je suis content de cette solution.

Questions connexes