自动布局:显示相对于容器

时间:2015-07-21 23:34:27

标签: ios uitableview autolayout xcode-storyboard

我在开发iPhone应用程序时遇到了一些问题。我在屏幕上有一个UITableView,并为我想要的内容制作了一个模板。我确保约束得到满足,当我的程序编译时,我没有得到自动布局问题。但是,当我在模拟器上运行我的程序时,一些文本没有显示,但我知道它应该在那里。以下是Storyboard上的内容:

How things are laid out on my screen

然而,这就是我在iPhone模拟器上运行程序时的情况,如下所示:How it appears on simulator

我只担心From DateTo Date字段没有显示,因为如果我将它们移到左边,我最终可以看到它们。此外,我确保通过To Date制作Trailing Space to Container Margin字段8 px,因此我不太明白为什么这两个字段无法显示。任何帮助,将不胜感激。谢谢!

编辑:To Date约束的图片: Image of To Date Constraints

编辑2:表格视图单元格现在如何显示的图像:enter image description here

2 个答案:

答案 0 :(得分:0)

您的“缺失”标签可能在屏幕边界之外的右侧太远。如果您的视图控制器在故事板中比在运行时更宽,则可能会发生这种情况。确保您的标签具有尾随空格的约束 - 这将使它们始终在屏幕范围内,无论屏幕宽度如何。

此外,使用Xcode中的调试视图层次结构来查看这些标签实际结束的位置。

<强>更新

尝试覆盖awakeFromNib子类中的UITableViewCell方法:

override func awakeFromNib()
{
    contentView.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight
}

答案 1 :(得分:0)

由于尺寸等级和不同屏幕尺寸之间的差异,很可能标签没有显示。在您的故事板中,原始视图控制器是方形。确保将标签固定到要连接到的单元格的侧面。这将确保它们保持在您想要的位置。还要确保将实际的表视图固定到超级视图,以便可以看到标签。我一直固定在顶部,底部和两侧,以适应不同的屏幕尺寸和旋转。您可能需要更改其他大小类的约束。这可能会使某些东西看起来与屏幕尺寸较小有点混淆,但您可以随时更改单元格的字体或格式以适应所有内容。

如果要更改其他大小类的约束,只需在故事板底部选择该大小类。选择标签,然后在尺寸检查器中,您可以制作您不想要的约束,并连接其他一些约束以使其工作。 Ray Wenderlich的网站提供了关于大小类和自适应布局的精彩教程。你可以找到它https://docs.djangoproject.com/en/1.8/intro/tutorial05/

快乐的编码!!