以编程方式将XIB视图添加到具有边界的视图控制器 - 不居中

时间:2015-02-24 14:16:01

标签: ios objective-c autolayout xib

我有一个XIB视图,它有一个子视图(红色方块),我使用约束垂直和水平居中。

如下所示:

enter image description here

我以编程方式将视图添加到视图控制器中,其中包含以下内容:

xibView.frame = self.view.bounds;
self.view addSubview:beerMenuAddView];

但是,xibView和子视图(红色方块)不再垂直居中。看起来好像视图没有刷新/重新调整大小以考虑导航栏。

我确信这是一个简单的修复......但我不确定这里需要发生什么。

enter image description here

1 个答案:

答案 0 :(得分:1)

导航栏会覆盖其下方的视图。在iOS 7中,此行为已更改。要以红色方块为视觉居中,您可以选择几个选项。

  1. 设置xibView.frame(height和x)值以考虑导航栏使用的空间(如果您也显示,则显示状态栏)。
  2. 或者,可能是更好的选择,在界面生成器中设计xibView,导航栏显示并调整约束,为您提供所需的居中。