UIScrollView
Je fais ca pour ajouter une image a mon UIscrollView.
Ca fonctionne bien, sauf que l image apparait en haut a gauche, je voudrais centrer la vue sur le centre de l image. Quel methode utiliser?
UIImageView *tempImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"metro.gif"]];<br /> [self setMyImage:tempImageView];<br /> [tempImageView release];<br /> <br /> myScrollView.contentSize = CGSizeMake(myImage.frame.size.width, myImage.frame.size.height);<br /> myScrollView.maximumZoomScale = 4.0;<br /> myScrollView.minimumZoomScale = 0.25;<br /> myScrollView.clipsToBounds = YES;<br /> myScrollView.delegate = self;<br /> [myScrollView addSubview:myImage];
Ca fonctionne bien, sauf que l image apparait en haut a gauche, je voudrais centrer la vue sur le centre de l image. Quel methode utiliser?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Le problème c'est que par essence même, le centre de la partie visible de la scroll view n'est pas sensée être fixe. Il faudrait donc préciser ce que tu entends par "centrer la vue sur le centre de l image"
myImage est un UIImageView.
Merci
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
Parameters
rect
A rectangle defining an area of the content view.
animated
YES if the scrolling should be animated, NO if it should be immediate.
Discussion
This method scrolls the content view so that the area defined by rect is just visible inside the scroll view. If the area is already visible, the method does nothing.
Avec les 4 paramètres dans CGRectMake réglés comme tu veux.
Sinon est il possible de regler le zoom initial?
Donc pour moi, t'as une grande image (donc grande imageView) mise dans une srollView.
Et tu veux par défaut (sans doute au démarrage) que le centre de l'image soit affichée (et donc que les scrollers horizontaux et verticaux de la scrollView soient au milieu de leur barre de défilement).
C'est ça ?
SI j y arrive pas, reussir a ajuster le zoom au chargement.
1. il faut calculer le delta entre la taille du scrollView et celle de l'imageView.
La taille (sous Appkit, mais ça doit être pareil sous UIKit) de la scrollView se récupère par la proprieté bounds de la view renvoyé par la méthode contentView.
2. à partir de là , il faut déduire le point central pour chaque axe. Une formule du style :
[tt](largeur_image - largeur_scrollview) / 2[/tt]
pour la largeur te renvoie le point X à partir duquel l'image doit être affichée (horizontalement) pour qu'elle semble centrée.
3. enfin il faut utiliser la méthode scrollPoint: de la view renvoyée par la méthode documentView pour scroller jusqu'au centre de l'image. Le point de scrollPoint: est formée par la méthode expliqué au point 2 pour chaque axe.
Et scrollPoint dans Iphone OS library est pour la Classe CAlayer.
La contentSize de ta scroll view est actuellement identique à l'image que tu veux mettre dednas. Donc il est assez logique que le scroller ne scrolle rien du tout . Essaie de mettre une grande contentsize 1000x100 par exemple
Tu veux savoir comment positionner ton scrolling et régler le zoom lors de l'initialisation (et quand tu as besoin) ?
iPhone Dev Center > iPhone Reference Library > Topics > User Experience: Windows & Views > Scrolling
Le 2eme scrollview est initialisé avec l image en haut a gauche.
Il faut creer une sous classe de UIScrollView et modifier setContentOffset.