Ich möchte eine Bildlaufansicht mit einer Bildansicht haben. Das Bild ist eigentlich eine Karte, die viel größer ist als der Bildschirm. Die Karte sollte sich anfangs in der Mitte der Bildlaufansicht befinden, wie Fotos in der Fotos-App, wenn Sie das iPhone in Querformat drehen.UIScrollView mit zentrierten UIImageView, wie Fotos App
Ich schaffe es nicht mit der richtigen Zoomen und Scrollen in der gleichen Zeit die Karte in der Mitte zu haben. Vorausgesetzt, dass das Kartenbild beginnt vom oberen Rand des Bildschirms (im Hochformat), sieht der Code so etwas wie:
- (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;
}
Wenn ich den Bildrahmen in die Mitte, das Bild wächst nur von der Spitze der sein Rahmen nach unten. Ich habe versucht, mit der mapView-Transformation herumzuspielen, mit dynamisch wechselndem Frame des imageView. Nichts funktioniert für mich bisher.
Martin, sieht aus wie Shizam hat eine funktionierende Lösung für 3.2+ Betriebssysteme zur Verfügung gestellt. Vielleicht möchtest du seine Antwort als die beste auswählen. –
Hier ist der beste Weg, um dieses Problem zu lösen: http://blog.proculo.de/archives/180-Paging-enabled-UIScrollView-With-Previews.html Es funktionierte sehr gut für mich. – ararog
Das ist ein ganz anderes Problem als das, was hier beschrieben wird. – Jonah