【发布时间】:2011-02-06 12:08:01
【问题描述】:
我有一个UIViewController,里面有两个 UIView,其布局(在 Interface Builder 中设置)是这样的(洋红色视图是 UIViewController 默认视图):
我将主视图添加到获得此效果的根视图中(通过不显示将其frame 放在底部的较暗视图):
现在当设备旋转时,我得到的是:
而我仍想隐藏较暗的视图。
这是我在它出现时用来隐藏它的代码(我在viewDidLoad 方法中使用它):
- (void)hideAll:(float)time{
CGRect hiddenFrame = CGRectMake(0, 1024, self.view.frame.size.width, self.view.frame.size.height);
[self.view setFrame:hiddenFrame];
[self.view setNeedsDisplay];
}
它似乎可以工作,但是当我在旋转时(在willRotateToInterfaceOrientation:duration: 中)调用它的变体时,什么也没有发生:
CGRect hiddenFrame = CGRectMake(0, 748, self.view.frame.size.width, self.view.frame.size.height);
[self.view setFrame:hiddenFrame];
[self.view setNeedsDisplay];
我错过了什么?我需要在 Interface Builder 中设置一些其他视图属性吗?
更新
在我看来,设备旋转后坐标系并没有改变(即在纵向模式下设置在左上角的原点将在横向模式下顺时针旋转后变为右上角)
【问题讨论】:
标签: iphone ipad ios uiviewcontroller rotation