Autolayout - 与不同屏幕上的对象不同的空间

问题描述:

我正在尝试为屏幕创建布局,并且我面临一个问题 - 在不同的屏幕上,两个textview之间的空间不同。Autolayout - 与不同屏幕上的对象不同的空间

enter image description here

我不明白为什么会发生 - 我明确地告诉IB使两种观点之间的垂直间距。

我的约束是这样

enter image description here

enter image description here

我在做什么错?任何建议?

+0

首先,摆脱那个“幻数”。改用标准值。 -4和-5似乎不合适。 –

,两个文本视图之间的大小没有变化。

它看起来好像会有更多空间的原因是因为更多文本适合一行,因此文本的总高度在较宽的设备上较少。

您可以通过更改文本视图的背景颜色来自己查看。


如果你在需要有两个文本视图之间完全相同的空间死肯定,不管什么在他们(考虑到该文本可能是在其他语言中完全不同的),你有2选项:

  1. 以编程方式计算文本的高度并设置高度约束。这是允许你这样做的各种方法(sizeWithAttributes,boundingRectWithSize:),但是我用它们已经很久了,它们可能会被弃用。
  2. 一个利基解决方案是将您的整个视图改为表格视图。您可以使表格视图单元格根据内容自动增长(截至iOS 8)。

我更喜欢第二种解决方案。

+0

你说得对。我怎样才能改变约束条件,使它看起来类似于任何地方? –

+0

即使我建议不要花费太多时间,只是简单地把它留下,我已经发布了两种可能的解决方案。 –

我认为你必须在代码中处理这个问题。我相信发生的事情是,即使没有足够的文本来填充该空间,文本视图也会占用一定的空间。然后,从此底部应用间距。

为您的文字视图添加背景颜色,这应显示是否发生这种情况。

如果是这种情况,您需要根据提供的文本更新文本视图大小。

编辑

关闭我的头顶。你不能只使用一个文本视图,并使用属性文本来添加间距的段落吗?