Я хотел бы иметь вид прокрутки с представлением содержимого изображения. Изображение на самом деле является картой, которая намного больше, чем экран. Сначала карта должна находиться в центре прокрутки, например, фотографии в приложении "Фотографии", когда вы поворачиваете iPhone в альбомную ориентацию.
Мне не удалось получить карту в центре с правильным масштабированием и прокруткой в одно и то же время. При условии, что изображение карты начинается с верхней части экрана (в портретной ориентации), код выглядит примерно так:
- (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;
}
Когда я перемещаю рамку изображения в центр, изображение увеличивается только с верхней части его рамки. Я попытался поиграть с преобразованием mapView с динамически меняющимся кадром изображения. Ничто не работает для меня до сих пор.