当我添加自动布局约束时,为啥我的 textview 不显示?

Posted

技术标签:

【中文标题】当我添加自动布局约束时,为啥我的 textview 不显示?【英文标题】:Why doesnt my textview show up when I add autolayout constraints?当我添加自动布局约束时,为什么我的 textview 不显示? 【发布时间】:2017-10-01 19:46:02 【问题描述】:

我有一个视图,它在顶部包含一个文本视图(显示一个问题)。还有 4 个标签(用于各种答案选项),脚下有一堆选项按钮。

当“问题”文本视图不受约束时,纵向显示效果很好。当我旋转手机时,文本不会在屏幕宽度上扩展。

我认为解决此问题的方法是单击添加约束销/对齐按钮,然后单击 T 条,为顶部尾随和前导添加“0”约束。

但是,当我这样做时,textview 根本不显示。知道为什么吗?

【问题讨论】:

您的错误说明了什么(Question View Controller Scene 旁边的红色箭头)? 它说:缺少约束:需要约束:Y 位置、高度 我有一个类似的问题,只是我实际上添加了一个底部约束,但它仍然没有出现。 【参考方案1】:

缺少高度限制。当您不为 UITextView 提供任何约束时,Xcode 会自动添加约束,但一旦您尝试固定顶部、前导和尾随锚点,Xcode 将不会自动添加任何约束。

您必须将 UITextView 的底部锚点固定到您的任何按钮或给它一个高度约束将解决您的问题。因为 UITextView 不会像 UILabel 或 UITextField 那样根据它的内部内容大小来计算它的高度。

如果您只想显示一些文本而没有编辑功能,那么您可以使用 UILabel 并将行数设置为 0。

【讨论】:

我在上、下、左、右加了一个约束,根本不显示。 @TimothySwan 你使用 UITextView 还是 UILabel?如果您使用的是 UITextView,您还必须设置高度约束 我正在使用 UITextLabel。我不确定如果他们已经设置了顶部和底部,为什么还需要设置高度约束,但即使需要这样做,它也需要适合所有设备。我不能只输入一个硬编码的数字来表示高度,但这是我迄今为止看到的唯一选择。您是否看到高度的相对选项会自动调整以适应设备屏幕? 如果您使用标签,那么您不需要设置高度约束,它将根据您的文本自动设置标签的高度。不要忘记将行的标签数设置为 0,如果您在代码中创建标签,则必须将标签 translatesAutoresizingmask 设置为 false 填充修复您的问题

以上是关于当我添加自动布局约束时,为啥我的 textview 不显示?的主要内容,如果未能解决你的问题,请参考以下文章

为啥自动布局约束不起作用?

向添加到 UIWindow 的视图添加约束时,为啥无法设置自动布局约束?

为啥我的第二个按钮在使用自动布局约束时表现不同?

添加约束时缺少自动布局“安全区域”

当我们点击按钮时如何在 Ios 中设置自动布局?

ios 6自动布局约束错误