为什么在横向模式下我的工具栏不可见?

时间:2009-04-21 02:04:45

标签: iphone landscape

我的目标是让应用程序在横向和纵向模式下都能正常运行,而我能想到的就是下面的代码。该应用程序在纵向工作正常,但切换到横向时,文本不会扩展(向右)以填补额外的空间。我确保我的弹簧/支柱固定,并且父母在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

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:0)

有几个原因导致它可能搞乱......也许你的UIToolbar有错误的父母。也许正在运行layoutSubviews并将其移动到奇怪的地方。或者别的什么。

我建议您在视图控制器上实现didRotateFromInterfaceOrientation:并在旋转后读取UIToolbar的框架,以查看它已经消失的位置。这将是发现确切问题的最佳方式。