2010-06-18 3 views
1

Je veux avoir des images à l'intérieur d'un UIScrollView (ou au moins apparaissent pour être dans un UIScrollView) qui ne changent pas leur taille lors d'un zoom avant ou arrière. Je souhaite que les images conservent leurs positions lors du zoom ou du défilement.Comment avoir des images qui ne sont pas redimensionnées lors d'un zoom dans un UIScrollView?

Le cas d'utilisation est que j'ai une vue de carte personnalisée avec des punaises. Je veux que les punaises restent en place lors du zoom et du défilement de la carte, mais je ne veux pas qu'elles soient "agrandies" avec le contenu.

Quelle est la meilleure façon de faire cela?

Répondre

2

Vous pouvez avoir votre image pushpin (s) en tant que sous-vue de votre UIScrollView mais pas une sous-vue de la vue retournée par

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 

Puis, scrollViewDidZoom régler le x pushpin et y par le zoomScale garder les broches correctement positionnées:

- (void)scrollViewDidZoom:(UIScrollView *)scrollView { 
    imageView.frame = CGRectMake(pushPinX * scrollView.zoomScale, pushPinY * scrollView.zoomScale, imageView.frame.size.width, imageView.frame.size.height); 
} 
+0

Cela a failli le faire pour moi. Au lieu de repositionner mes épingles dans scrollViewDidZoom, je le fais dans scrollViewDidScroll qui est appelé en continu lorsque la vue est en zoom. Merci pour le conseil! –

Questions connexes