У меня есть UIScrollView с UIImage внутри. Следующий код инициализирует изображение правильно (это ширина такая же, как ширина Scrollview):Как обрабатывать UIImage при вращении устройства
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
...
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"map1.jpg"]];
imageView.userInteractionEnabled = YES;
imageView.autoresizingMask = (UIViewAutoresizingFlexibleWidth);
[imageScrollView addSubview:imageView];
imageScrollView.contentSize = [imageView frame].size;
...
// calculate minimum scale to perfectly fit image width, and begin at that scale
float minimumScale = [imageScrollView frame].size.width/[imageView frame].size.width;
//imageScrollView.maximumZoomScale = 1.0;
imageScrollView.minimumZoomScale = minimumScale;
imageScrollView.zoomScale = minimumScale;
}
То, что я хочу сделать, это установить размер, чтобы полностью соответствовать (как выше), когда вращается устройства. Вот что я пытался сделать:
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
float newScale = [imageScrollView frame].size.width/[imageView frame].size.width;
imageScrollView.zoomScale = newScale;
}
По некоторым причинам это не работает вообще. Единственный способ, которым я смог заставить его работать, - инициализировать еще один UIImage и снова выполнить весь процесс инициализации, что мне не кажется правильным.
Это, похоже, не работает. Я думаю, проблема связана с UIImageView, а не с UIScrollView. –
Хорошо, пожалуйста, опишите, что вы видите на экране после вращения, т. Е. Какой размер UIImage и т. Д.? –
Изображение увеличено (путь более чем необходим) –