Xcode:Table View Cell不会自动调整其高度

时间:2018-02-04 05:28:19

标签: ios swift xcode uitableview user-interface

我的表格查看单元格存在问题,因为它们的内容无法自动调整。

我有一个标题标签和另一个名称标签。两个标签下方有一个文本视图,在模拟器运行时从不显示。

这是 what the Table View Cell is supposed to look like但是,这是what the Table View Cell displays

我已使用约束将表格视图单元格内的所有元素固定到内容视图。 我读到调整表格视图单元格高度本身不起作用,因此,我必须从表格视图本身调整高度。

它设置为自动,但不会调整为seen here。我也尝试将估计的高度设置为自动但无济于事。唯一的解决方案是设置自定义高度,但如果文本视图只包含少量文本,则会显得非常奇怪,因为会有大的空白区域。 我根本没有添加任何代码来调整大小。

以下约束:

3 个答案:

答案 0 :(得分:2)

首先您需要为textview添加高度约束并添加其IBOUTlet,然后您需要覆盖单元格的updateconstraint并在更新约束方法中执行以下操作。

override func updateConstraints() {
        super.updateConstraints()
        self.textViewHeightConstraint.constant = self.textView.contentSize.height
    }

以及名称标签添加底部约束。

答案 1 :(得分:1)

默认情况下,UITextView不会调整自身大小以适应其内容。虽然你可以使用@Waqas Sultan方法,但我建议让textView大小本身。要实现这一点,只需使用:

textView.isScrollEnabled = false

或者,在故事板中,找到Scroll Enabled归因并取消选中。

这会使textView自行调整大小。

但是,根据您显示的约束,很难判断是否确实存在足够的约束来确定所有内容的正确框架 - 存在与Review label相关的约束,但谁知道您如何约束该标签

没有看到tableView单元格中的所有相关约束,我无法保证这足以使其按预期工作(您可能已经忘记了只有一个约束,并且它可能会搞乱你的整个布局。)

答案 2 :(得分:0)

嘿哥们,我希望你这样试试。

<div id="login">
<form method="post">
<label for="user">User</label>
<input type="text" id="user" name="user" tabindex="1" autofocus>
<label for="password">Password</label>
<input type="password" id="password" name="password" tabindex="2">
<input type="submit" name="submit" value="sign in">
</form>
</div>
<br>
<?php
if(isset($_POST["submit"])) {
  $_SESSION["user"] = $_POST["user"];
  $_SESSION["password"] = $_POST["password"];
}
?>

注意:确保不要给标签高度。否则标签不会根据内容扩展。