0

我的目标是让应用程序在横向和纵向模式下都能正常运行,而我所能想到的就是下面的这段代码。该应用程序在纵向上运行良好,但当切换到横向时,文本不会扩展(向右)以填充额外的空间。我确保我的弹簧/支柱设置在哪里,并且父母在 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);
  }
}

请注意,它在纵向模式下看起来很好(出现工具栏):

肖像 http://mr-sk.com/img/land.png

但是工具栏在横向模式下消失了:

景观 http://mr-sk.com/img/por.png

有任何想法吗?

4

2 回答 2

3

如果您使用 Interface Builder - 如果您没有在对象检查器中指定约束以将工具栏固定到边缘和底部(单击小红线以指定约束),则会得到相同的结果。

您也可以在代码中执行相同的操作 - 您需要查找如何执行此操作(但在 IB 中更容易)

于 2009-10-04T15:33:13.690 回答
0

它可能会搞砸有几个原因......也许你的 UIToolbar 有错误的父级。也许 layoutSubviews 正在运行并将其移动到奇怪的地方。或者是其他东西。

我建议您在视图控制器上实现 didRotateFromInterfaceOrientation: 并在旋转后读取 UIToolbar 的框架以查看它的去向。这将是发现确切问题的最佳方法。

于 2009-04-21T05:37:25.467 回答