我在UITabBarController中有3个子视图。第一个选项卡的视图包含在调用willAnimateRotationToInterfaceOrientation时手动移动的对象。但是,如果在旋转时看到另一个选项卡的视图,则永远不会调用willAnimateRotationToInterfaceOrientation,如果我返回到第一个选项卡,则第一个选项卡视图上的项目不在正确的位置。
当另一个视图可见时,如何在旋转时手动移动一个视图中的对象?
答案 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;
}
}