UIScrollView setZoomScale: анимированные мессы scrollView формат изображения - PullRequest
0 голосов
/ 17 января 2012

Я занимаюсь разработкой приложения с представлением, которое содержит UISCrollView, внутри которого находится UIImageView.

Когда представление должно появиться, я выполняю операцию setZoomScale:

-(void) viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@"bounds of current view");
    NSLog(@"widht: %f, height: %f", self.view.bounds.size.width,self.view.bounds.size.height);
    NSLog(@"size of the image");
    NSLog(@"widht: %f, height: %f", self.imageView.image.size.width,self.imageView.image.size.height);
    NSLog(@"size of the scrollView BEFORE resizing");
    NSLog(@"widht: %f, height: %f", self.scrollView.contentSize.width,self.scrollView.contentSize.height);
    [self.scrollView setZoomScale:0.5 animated:NO];
    NSLog(@"size of the scrollView AFTER resizing");
    NSLog(@"widht: %f, height: %f", self.scrollView.contentSize.width,self.scrollView.contentSize.height);
}

Проблема в том, что если изображение квадратное, после применения setZoomScale scrollView больше не квадратный.Вот результат выполнения вышеуказанного кода:

2012-01-16 21:41:01.678 WorldTour[22781:f803] bounds of current view
2012-01-16 21:41:01.680 WorldTour[22781:f803] widht: 320.000000, height: 367.000000
2012-01-16 21:41:01.681 WorldTour[22781:f803] size of the image
2012-01-16 21:41:01.682 WorldTour[22781:f803] widht: 612.000000, height: 612.000000
2012-01-16 21:41:01.683 WorldTour[22781:f803] size of the scrollView BEFORE resizing
2012-01-16 21:41:01.683 WorldTour[22781:f803] widht: 612.000000, height: 612.000000
2012-01-16 21:41:01.684 WorldTour[22781:f803] size of the scrollView AFTER resizing
2012-01-16 21:41:01.685 WorldTour[22781:f803] widht: 306.000000, height: 259.500000

Итак, после запуска кода квадратный scrollView размером 612x612 оказывается 306x259.5.Что мне не хватает?Что идет не так?

Не следует [self.scrollView setZoomScale: 0.5 animated: NO];преобразовать высоту и ширину одинаково?

1 Ответ

3 голосов
/ 17 января 2012

Хорошо, после многих попыток я наконец заработал!Я не знаю точно, что было причиной проблемы, но с scrollView, выбранным в раскадровке, я выбрал Attributes Inspector внутри XCode, а затем снял флажок «Autoresize Subviews».После снятия отметки все работает нормально.Размер scrollView правильно изменен.

Я решил это, но не понимаю, в чем причина проблемы, поэтому, если вы знаете, почему это происходит, не стесняйтесь комментировать!

...