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

Diz*_*iet 3 objective-c uiview autolayout ios6

我有一个非常简单的加载视图:

self.splashView = [[[NSBundle mainBundle] loadNibNamed:@"DownloadingData"
                                                        owner:nil options:nil] objectAtIndex:0];
[self.view addSubview:self.splashView];
Run Code Online (Sandbox Code Playgroud)

这是一个纵向模式的全高4"视网膜视图,状态栏,顶部栏和底栏设置为无.它有一些约束,使得图像沿底部对齐.我在应用程序中其他地方的控制器中使用类似视图,并调整大小进入可用空间(使用NavigationBar和TabBar)绝对没问题.但是这个直接从笔尖加载然后添加的视图似乎忽略了约束.

该视图适用于各种情况,例如,有/无导航条/标签栏的任意组合.

我已经试过的各种组合setNeedsLayout,setNeedsUpdateConstraints在splashView.我也试过调用layoutSubviews视图本身.

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

Diz*_*iet 6

嗯,我想这很明显:

self.splashView = [[[NSBundle mainBundle] loadNibNamed:@"DownloadingData"
                                                 owner:nil options:nil] objectAtIndex:0];
[self.view addSubview:self.splashView];
[self.splashView setFrame:self.view.frame];
Run Code Online (Sandbox Code Playgroud)

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