2010-08-24 2 views
0

У меня есть 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 и снова выполнить весь процесс инициализации, что мне не кажется правильным.

ответ

0

Возможно, вам также следует изменить .contentSize прокрутки.

+0

Это, похоже, не работает. Я думаю, проблема связана с UIImageView, а не с UIScrollView. –

+0

Хорошо, пожалуйста, опишите, что вы видите на экране после вращения, т. Е. Какой размер UIImage и т. Д.? –

+0

Изображение увеличено (путь более чем необходим) –

Смежные вопросы