3

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

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

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

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

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

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

4

1 回答 1

6

好吧,我想这很明显:

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

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

于 2012-10-17T11:41:14.960 回答