Рамка UIScrollView имеет другой размер на iOS 8 и iOS 7

Я реализовал контроллер представления, который просто отображает одно изображение и позволяет пользователю ущипнуть, чтобы увеличить / панорамировать изображение. Он прекрасно работает на iOS 7, но на iOS 8 рамка просмотра с прокруткой имеет другой размер, и в результате изображение слишком велико на iPhone и слишком сильно уменьшено на iPad при работе на iOS 8. Это происходит потому, что ширина рамки просмотра прокрутки равна 600 пт, что соответствует размеру в раскадровке (универсальная раскадровка с использованием классов размеров). Но у меня есть ограничения на автоматическое размещение, которые должны обеспечивать растягивание представления прокрутки для заполнения доступного пространства - оно должно быть 768pt на iPad. Это касается iOS 7, но не iOS 8.

Это настройка: в Interface Builder у меня естьUIViewController который содержитUIView который содержитUIScrollView с автолайтовыми ограничениями, тянущимися, ведущие, нижние и верхние места к суперпредставлению. Затем вviewDidLoad:

    UIImage *image = [UIImage imageNamed:@"image"];
    self.imageView = [[UIImageView alloc] initWithImage:image];
    self.imageView.contentMode = UIViewContentModeScaleAspectFit;
    self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, self.imageView.image.size.height);

    [self.scrollView addSubview:self.imageView];
    self.scrollView.contentSize = image.size;

    #warning Bug here - scroll view frame is 600pt on iOS 8 - should be 768 for iPad
    NSLog(@"scroll view frame wid: %f", self.scrollView.frame.size.width);

Я обнаружил, если я ставлю то же самоеNSLog вviewDidAppear ширина кадра правильно 768pt. Я пытался переместить этот код вviewWillAppear вместоviewDidLoad, но я получаю тот же результат - это 600 вviewWillAppear также. Таким образом, вид прокрутки правильно растягивается, чтобы заполнить дисплей, но только после того, как он появится на экране. Мне нужен правильный размер кадра, прежде чем изображение появится на экране, чтобы я мог рассчитать правильные значения минимального и максимального масштабирования.

Что я могу сделать, чтобы исправить это и убедиться, что он работает для iOS 7 и 8?

Ответы на вопрос(2)

Ваш ответ на вопрос