Autolayout - 与不同屏幕上的对象不同的空间
我正在尝试为屏幕创建布局,并且我面临一个问题 - 在不同的屏幕上,两个textview之间的空间不同。Autolayout - 与不同屏幕上的对象不同的空间
我不明白为什么会发生 - 我明确地告诉IB使两种观点之间的垂直间距。
我的约束是这样
我在做什么错?任何建议?
否,两个文本视图之间的大小没有变化。
它看起来好像会有更多空间的原因是因为更多文本适合一行,因此文本的总高度在较宽的设备上较少。
您可以通过更改文本视图的背景颜色来自己查看。
如果你在需要有两个文本视图之间完全相同的空间死肯定,不管什么在他们(考虑到该文本可能是在其他语言中完全不同的),你有2选项:
- 以编程方式计算文本的高度并设置高度约束。这是允许你这样做的各种方法(
sizeWithAttributes
,boundingRectWithSize:
),但是我用它们已经很久了,它们可能会被弃用。 - 一个利基解决方案是将您的整个视图改为表格视图。您可以使表格视图单元格根据内容自动增长(截至iOS 8)。
我更喜欢第二种解决方案。
你说得对。我怎样才能改变约束条件,使它看起来类似于任何地方? –
即使我建议不要花费太多时间,只是简单地把它留下,我已经发布了两种可能的解决方案。 –
我认为你必须在代码中处理这个问题。我相信发生的事情是,即使没有足够的文本来填充该空间,文本视图也会占用一定的空间。然后,从此底部应用间距。
为您的文字视图添加背景颜色,这应显示是否发生这种情况。
如果是这种情况,您需要根据提供的文本更新文本视图大小。
编辑
关闭我的头顶。你不能只使用一个文本视图,并使用属性文本来添加间距的段落吗?
首先,摆脱那个“幻数”。改用标准值。 -4和-5似乎不合适。 –