我的目标是让应用程序在横向和纵向模式下都能正常运行,而我能想到的就是下面的代码。该应用程序在纵向工作正常,但切换到横向时,文本不会扩展(向右)以填补额外的空间。我确保我的弹簧/支柱固定,并且父母在IB中选择了“allowResizing”。
以下是我所做的事情:
- (void) willAnimateSecondHalfOfRotationFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation duration:
(NSTimeInterval)duration {
UIInterfaceOrientation toInterfaceOrientation = self.interfaceOrientation;
if (toInterfaceOrientation == UIInterfaceOrientationPortrait) {
self.myView.frame = CGRectMake(0.0, 0.0, 320.0, 480.0);
}
else {
self.myView.frame = CGRectMake(0.0, 0.0, 480.0, 256.0);
}
}
请注意,它在纵向模式下看起来很好(工具栏出现):
Portrait http://mr-sk.com/img/land.png
但工具栏在横向模式下消失了:
Landscape http://mr-sk.com/img/por.png
有什么想法吗?
答案 0 :(得分:3)
如果使用Interface Builder - 如果未在对象检查器中指定约束以将工具栏固定到边缘和底部(单击小红线以指定约束),则会得到相同的结果。
您也可以在代码中执行相同操作 - 您需要查找如何执行此操作(但在IB中更容易)
答案 1 :(得分:0)
有几个原因导致它可能搞乱......也许你的UIToolbar有错误的父母。也许正在运行layoutSubviews并将其移动到奇怪的地方。或者别的什么。
我建议您在视图控制器上实现didRotateFromInterfaceOrientation:并在旋转后读取UIToolbar的框架,以查看它已经消失的位置。这将是发现确切问题的最佳方式。