如何在Interface Builder中的Navigation Controller中调整子视图的大小

时间:2011-04-13 15:28:26

标签: objective-c xcode view interface-builder resize

我正在构建一个iPhone应用程序,在我的一个问题中,我正在尝试调整子视图的大小。首先,我有一个表格视图,当点击每个数据时,它会打开一个新视图。但问题是该打开视图(包含导航控制器)中的图像和文本未正确对齐。它们都是错位的,我的猜测是在那个视图中,它只显示顶部的3/4,而不是整个视图(我的大部分图像底部只显示图像的一半)。我的目标是使每个图像和文本适合我的视图,其中包含我视图顶部的导航控制器。所以在研究之后,我可以在Interface Builder中更改大小和位置,但由于某种原因它们是空白的,我无法编辑:

enter image description here

另外,我在viewDidLoad中尝试了这段代码:

// DetailViewController.m
- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.autoresizesSubviews = YES;
    self.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
}

到目前为止,这些都没有调整我的视图以适应我的导航控制器,所以我希望有人能更好地了解如何使用导航控制器调整视图大小并使其适应感谢

1 个答案:

答案 0 :(得分:1)

让我总结一下,所以我得到你在这里想做的事情。你有一个UITableView视图。在该表视图中选择单元格时,将新视图推送到导航堆栈。在那个新视图中,导航控制器的导航栏会在顶部隐藏部分布局?

假设我是对的...
您遇到的问题是正在推送到导航堆栈的视图的视图(和子视图)的自动调整大小。您需要在Interface Builder中设置它以查看正确的结果。看起来应该是这样的:
enter image description here
这意味着视图将缩小并增长以匹配它自身所处的任何大小约束。在在一个UINavigationController正在显示的情况下,使得它在导航栏和工具栏可选之间的较小的屏幕空间适合它就会收缩本身。

注意也要在此视图的所有子视图上设置适当的自动调整遮罩,以便它们都适当地处理任意大小调整。