Centre UIImageView à l'intérieur de UIScrollView sans contentInset?
J'ai été incapable de trouver la réponse à cette question que je vais avoir.
J'ai une UIImageView à l'intérieur d'un UIScrollView, et j'aimerais que le centre de son contenu à la verticale.
Droit maintenant, le seul moyen que j'ai été capable de le faire est par le réglage du défilement de la vue contentInset basé sur la hauteur de la UIImageView taille, mais ce n'est pas une solution parfaite; simplement, il augmente la taille de la UIImageView, faisant de la UIScrollView "penser" son contenu est plus grand, et ajoute ces barres noires en haut.
J'ai essayé d'obtenir l'aide de:
UIScrollView avec centrée UIImageView, comme des Photos app
et
Le contenu du centre de UIScrollView lorsque les petits
Mais n'ont pas été en mesure de le résoudre à l'aide de ces réponses.
- Je suis également du mal à trouver une solution pour ce. Il semble que il n'y a pas de moyen simple de centrer le contenu d'un scrollView.
- Il a été encore répondu?
Vous devez vous connecter pour publier un commentaire.
Ce code devrait fonctionner sur la plupart des versions de l'iOS (et a été testé pour fonctionner sur les 3.1 la hausse, ce qui est tout j'ai actuellement accès à l').
Il est basé sur l'Apple de la WWDC code mentionné dans la réponse de Jonas.
Ci-dessous pour ajouter le votre sous-classe de UIScrollView, et remplacer tileContainerView avec la vue contenant votre image ou de la dalle:
Vous pouvez dire à l'UIScrollView pour faire défiler jusqu'à affichage spécifique en appelant
scrollRectToVisible:animated:
Exemple:
Pour le centrer verticalement, essayez ceci:
1) Ajouter une vue vide pour votre scrollview qui est de la même hauteur de votre contentSize.
2) Ajoutez votre UIImageView au centre de la emptyView
2)
scrollRectToVisible
sur ce vide vue.De créer une uiview et ajouter le UIImageView centré dans le présent, puis ajouter le point de vue de la scrollview
Noter que vous devrez régler le point de vue image à la localisation et les dimensions dont vous avez besoin dans la scrollview. Le plus important à noter est le centrage de l'imageview à l'intérieur du point de vue image par le biais de la vue des cadres de dimensions variables.
Apple a publié en 2010 la WWDC session des vidéos pour tous les membres de l'iphone developer program. L'un des thèmes abordés est comment ils ont créé l'application photos!!! Ils ont construit une application similaire, étape par étape, et ont fait tout le code disponible gratuitement.
Il n'a pas l'utilisation privée de l'api soit. Je ne peux pas mettre tout le code ici à cause de l'accord de non-divulgation, mais voici un lien vers l'exemple de code de téléchargement. Vous aurez probablement besoin de vous connecter pour y avoir accès.
http://connect.apple.com/cgi-bin/WebObjects/MemberSite.woa/wa/getSoftware?code=y&source=x&bundleID=20645
Et voici un lien vers l'iTunes de la WWDC page:
http://insideapple.apple.com/redir/cbx-cgi.do?v=2&la=en&lc=&a=kGSol9sgPHP%2BtlWtLp%2BEP%2FnxnZarjWJglPBZRHd3oDbACudP51JNgs8klsfgxzto9x%2BTsnqSbeUSWX0doe%2Fzv%2FN5XV55%2FomsyfRgFBysOnIVggO%2Fn2p%2BiweDK%2F%2FmsIXj
cela peut aider
http://developer.apple.com/iPhone/library/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instp/UIView/autoresizingMask
fondamentalement, ce que vous pouvez faire avec autoresizingMask est que vous pouvez contrôler les "ancres" de ce point de vue, dans son parent vue, tout comme si vous étiez en utilisant l'Interface Builder
contentInset ne devrait pas changer la contentSize, il devrait changer le contentOffset.
Essayer de régler le contentSize, puis le contentInset. Aussi regarder la couleur de fond de la UIScrollView et ce qui pourrait apparaître derrière elle. Je n'ai aucun problème de centrage d'une UIImageView dans un UIScrollView à l'aide de setContentSize, setContentInset et addSubview.