Мне нужно вращать и перемещать объекты на UIView, когда ориентация меняется. Для этого у меня есть следующее в willRotateToInterfaceOrientation
if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) {
[self repositionObjectAfterRotation:scrollView x:0 y:100 width:480 height:150];
[self repositionObjectAfterRotation:pageControl x:50 y:430 width:100 height:30];
}
Мой repositionObjectAfterRotation:x:y:width:height:
выглядит следующим образом: он берет объект и изменяет его границы перед установкой новых границ.
- (void)repositionObjectAfterRotation:(UIView *)anObject x:(int)x y:(int)y
width:(int)width height:(int)height
{
[UIView animateWithDuration:kAnimationDuration animations:^{
CGRect boundsRect = anObject.bounds;
boundsRect.origin.x = x;
boundsRect.origin.y = y;
boundsRect.size.width = width;
boundsRect.size.height = height;
anObject.bounds = boundsRect;
} completion:^ (BOOL finished){
if (finished) {
[UIView animateWithDuration:kAnimationDuration animations:^{
anObject.alpha = 1.0;
}];
}
}];
}
Когда вид поворачивается обратно в портрет, он отображает только половину вида прокрутки, хотя мои NSLogs утверждают, что рамки и границы правильные ...
Правильно ли я вращаю / перемещаю объекты или есть более простой / предпочтительный способ поддержки ландшафта?
Спасибо