Границы UIScrollView не изменятся

У меня есть подкласс UIScrollView под названием pagingView. Я хочу анимировать его так, чтобы при повороте устройства (это характерно только для этого viewController и, следовательно, ландшафтный режим отключен в plist).

Я изменил все свойства clipsToBounds, а также свойства contentResize и маску авторазмера, но ни одно из них не работает. Код, который я использую, выглядит следующим образом:

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];
if (orientation == UIInterfaceOrientationLandscapeLeft)
{

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1.5];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
 graph.frame = CGRectMake(pagingView.frame.origin.x, pagingView.frame.origin.y-200, pagingView.frame.size.width*1.5, pagingView.frame.size.height*2);
[UIView commitAnimations];

}

Я изменил их на блоки, изменил все свойства, однако, когда я запускаю код, все, что он делает, это перемещает pagingView на 200 пикселей вверх по экрану, и границы не меняются (я также пытался изменить границы собственность также). Любая помощь будет принята с благодарностью, я надеюсь, что это простая вещь, которую мне не хватает, но я потратил часы на поиск решения, и самый близкий потенциальный ответ, который я получил, может быть, это как-то связано со свойством layer?

Заранее спасибо!

1 ответ

Решение

Недавно у меня была похожая проблема, когда границы прокрутки не менялись после поворота устройства. Решение, которое я нашел в конце, заключается в добавлении ограничений ко всем четырем сторонам прокрутки в раскадровке. Я использую autolayout, iOS7 и XCode5 в режиме симулятора. Без ограничений представление с прокруткой сохранит, например, фиксированный размер (320,480) в симуляторе iPhone 3.5". Это очень расстраивает, когда я пытался диагностировать.

Другие вопросы по тегам