Je voudrais avoir une vue de défilement avec une vue de contenu d'image. L'image est en fait une carte qui est beaucoup plus grande que l'écran. La carte devrait être initialement au centre de la vue défilante, comme les photos dans l'application Photos lorsque vous tournez l'iPhone en orientation paysage.
Je n'ai pas réussi à avoir la carte au centre avec un zoom et un défilement corrects en même temps. Pour autant que l'image de la carte commence en haut de l'écran (en orientation portrait), le code ressemble à quelque chose comme :
- (void)loadView {
mapView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"map.jpg"]];
CGFloat mapHeight = MAP_HEIGHT * SCREEN_WIDTH / MAP_WIDTH;
mapView.frame = CGRectMake(0, 0, SCREEN_WIDTH, mapHeight);
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT)];
scrollView.delegate = self;
scrollView.contentSize = mapView.frame.size;
scrollView.maximumZoomScale = MAP_WIDTH / SCREEN_WIDTH;
scrollView.minimumZoomScale = 1;
[scrollView addSubview:mapView];
self.view = scrollView;
}
Lorsque je déplace le cadre de l'image vers le centre, l'image ne s'agrandit que du haut de son cadre vers le bas. J'ai essayé de jouer avec la transformation de mapView, en changeant dynamiquement le cadre de l'imageView. Rien ne fonctionne pour moi jusqu'à présent.