2014-11-23 105 views
5

所以我创建了这个场景,以便了解视图根据其内容如何增加高度。但是我仍然无法做到这一点。如何使用自动布局更改uiview的高度?

这是我现在有:

enter image description here

TextView的是根据内容的增长。但是包含它的uview正在消失。我应该使用什么约束,以便当uitextview变大时,其父视图的高度也会增加?

回答

1

ON的UITextView让你您未选择这些

  • 滚动启用
  • 跳动
  • 反弹平铺
  • 反弹垂直
  • 显示水平指示器
  • 显示垂直指示器

现在像这样改变你的自动布局约束。

enter image description here

Constraints for parent view

+0

非常感谢:)现在有道理! – thirdage 2014-11-23 14:09:52

+0

您可以检查我的其他情况,因为我无法控制表格的标题视图:http://stackoverflow.com/questions/27077818/how-to-stop-a-uitextview-from-covering-uitableviewcell – thirdage 2014-11-23 14:18:04

-2

在故事板页面上,单击您的textview。 然后点击右下角的小三角形。

先点击“清除约束”。 然后在“添加缺少约束”。

它是最简单的方法。

+0

这可能是容易的,但它是远离明确的,不会永远做你需要它做的事,比如在这种情况下。 – nhgrif 2014-11-23 13:15:07

+0

我认为textview的高度是动态的,你无法直接调整评论的高度。 – Priyatham51 2014-11-23 14:04:25

10

首先清除所有的约束条件,这样我们就拥有了新鲜的石板。

第1步:构建您的视图层次结构。在这个例子中,我们想是这样的:

enter image description here

视图控制器的观点,我们称之为parentView有一个子视图,我们称之为redViewredView有一个孩子,一个文本字段,我们将其称为textField

层次结构看起来像这样:

enter image description here

步骤2:设置特定于任何单个视图的任何约束。在这种情况下,我们可能只想在文本视图上设置宽度约束。现在,我只需设置200pts的宽度。

enter image description here

步骤3:设置textView和它的父,redView之间的约束。假设我们想要一个10pt边框。让我们添加这些约束:

enter image description here

一旦我们添加了这些限制,我们会得到一些汽车布局警告和错误。对于初学者来说,由于限制,我增加了与和空间的SuperView不符合实际的尺寸,我会得到一些警告这样的:

enter image description here

也将有描述丢失X些错误, Y的职位为redViewtextView。这里的错误实际上是必要的两倍。 textView知道自己相对于redView的位置。我们不需要更多的约束来整理textView的位置。然而,redView不知道自己的位置,所以最终,textView也不完全知道。

我们可以更新textView的框架来摆脱警告,但让我们继续并修复实际的错误。

第5步:设置redView相对于superView的约束。 redView已经知道尺寸是多少。注意我们没有错误redView的宽度。它只是不知道该去哪里。在这种情况下,我会简单地说我们想要redView居中。因此,我们将要添加这些约束:

enter image description here

现在我们已经解决的一些问题。唯一的问题是所有东西都是height

要解决这个问题,我们必须设置内容大小优先级textView。将这些全部设置为1000,并将“内在尺寸”属性更改为“占位符”。

enter image description here

到现在为止,所有的自动布局的错误应该消失,我们应该只警告留下,因为我们的故事板帧不匹配,就是我们说的限制,他们应该。

我们可以解决这个问题,通过选择parentView和更新所有的帧:

enter image description hereenter image description here

还有一个最后的警告这种自动布局之谜,当谈到基于内容的大小自动调整大小:如果发生了什么我们文本视图没有内容?

如果我们的textview没有内容,自动布局会选择0的高度,我们的用户甚至无法看到那里有一个文本视图,更不用点击它来添加内容(并使其扩大)。在使用自动布局和基于内容的大小调整时,我们几乎总是应该确保已经为内容视图设置了明确的或最小的大小。

我们不必担心我们的textView的宽度,因为我们将其明确设置为200.因此,让我们添加一个最小高度约束。通过添加任何高度约束开始:

enter image description here

现在去尺寸检查为textView,发现我们加入这个高度约束,并编辑成一个大于或等于约束:

enter image description here

故事板不会反映我们textView中内容的变化并适当调整它的大小,但您的约束现在已正确设置,并且这将在您的设备或模拟器中正确运行。

+1

我认为我们还需要在红色视图上添加宽度约束。 – Priyatham51 2014-11-23 13:52:45

相关问题