willAnimateRotationToInterfaceOrientation未在一个子视图中调用,而另一个子视图可见并旋转

时间:2010-10-24 18:53:00

标签: iphone xcode ios ios4 uitabbarcontroller

我在UITabBarController中有3个子视图。第一个选项卡的视图包含在调用willAnimateRotationToInterfaceOrientation时手动移动的对象。但是,如果在旋转时看到另一个选项卡的视图,则永远不会调用willAnimateRotationToInterfaceOrientation,如果我返回到第一个选项卡,则第一个选项卡视图上的项目不在正确的位置。

当另一个视图可见时,如何在旋转时手动移动一个视图中的对象?

1 个答案:

答案 0 :(得分:4)

我解决了。我所做的是创建一个从ViewWillAppear调用的方法,该方法获取当前方向并更改为屏幕上的对象位置。

希望这有助于某人。

- (void)manuallyMoveViewObjects{

UIDeviceOrientation orientation = [[UIDevice currentDevice] orientation];

if (orientation == UIInterfaceOrientationPortrait || orientation == UIInterfaceOrientationPortraitUpsideDown) {
    CGRect buttonFrame = CGRectMake(125.0, 223.0, 70.0, 50.0);

    self.button.frame = buttonFrame;
}

else if (orientation == UIInterfaceOrientationLandscapeLeft || orientation == UIInterfaceOrientationLandscapeRight) {
    CGRect gbuttonFrame = CGRectMake(205.0, 131.0, 70.0, 50.0);
    self.button.frame = buttonFrame;

}

}