从NIB加载的视图与addSubView一起显示不遵循约束

时间:2012-10-16 13:05:05

标签: objective-c uiview ios6 autolayout

我的视图非常简单:

self.splashView = [[[NSBundle mainBundle] loadNibNamed:@"DownloadingData"
                                                        owner:nil options:nil] objectAtIndex:0];
[self.view addSubview:self.splashView];

这是一个纵向模式的全高4“视网膜视图,状态栏,顶部栏和底栏设置为无。它有一些限制,使得图像沿底部对齐。我在应用程序中的其他控制器中使用类似的视图并且他们调整到可用空间(使用NavigationBar和TabBar)非常好。但是这个直接从笔尖加载然后添加的视图似乎忽略了约束。

该视图旨在用于各种情况,例如:有/没有导航条/标签栏的任意组合。

我在splashView上尝试了setNeedsLayoutsetNeedsUpdateConstraints的各种组合。我也试过在视图本身上调用layoutSubviews

有人可以提供一些建议吗?在这种情况下,我应该采取另一种方式吗?或许使用viewController,或者在代码中手动添加约束?

1 个答案:

答案 0 :(得分:6)

嗯,我想这很明显:

self.splashView = [[[NSBundle mainBundle] loadNibNamed:@"DownloadingData"
                                                 owner:nil options:nil] objectAtIndex:0];
[self.view addSubview:self.splashView];
[self.splashView setFrame:self.view.frame];

然后自动调整大小/约束按预期工作。