当前位置: 首页 > 知识库问答 >
问题:

动态调整大小的表格视图产生自动布局问题

鱼宜
2023-03-14

我有一个占据整个设备屏幕的< code>ScrollView。

在这个< code>ScrollView中,有一个< code>View包含3个< code>Label,在< code>TableView下面,最后是一个< code>Label。

现在,< code>TableView中注入了未知数量的项目,我不希望它滚动,所以我将它的高度作为< code>NSLayoutContraint附加,一旦项目被解析,它将动态调整大小并重新加载。

这是数据输入后调整表格大小的方式:

@IBOutlet weak var tableView: UITableView!
@IBOutlet weak var tableHeight: NSLayoutConstraint!

var array = [String]()

let import = self.items!["people"] as? String

array = import!.componentsSeparatedByString(",")

let height = CGFloat(self.array.count * 50)

self.tableHeight.constant = height

self.tableView.reloadData()

这一切都很好,但问题出在自动布局上,我不断收到错误。我尝试了以下方法:

  1. 将内部View布局设置为固定在ScrollView上。首先,Xcode说“ScrollView的可滚动内容大小不明确”,运行它时,没有控制台错误,但View水平扩展超过ScrollView视口和动态内容显示下方的标签

数字 2 规定:UI滚动视图可滚动内容大小歧义

这是我得出的两个结果,但我现在被困住了。我已经检查了Apple文档中有关SrollViews的步骤,并完全按照它进行确定,但我认为我遇到了这个问题,因为动态大小的TableView或我犯的一些自动布局错误。

有人能帮忙吗?谢谢!

共有2个答案

景理
2023-03-14
use these two lines code in tableview delegate method height for Row


self.tableView.estimatedRowHeight = 44.0;
return tableView.rowHeight = UITableViewAutomaticDimension;
裴俊豪
2023-03-14

你考虑过使用堆栈视图吗?你应该能够将滚动视图设置为堆栈,并将其他视图中的所有内容设置为堆栈,然后将它们叠加。您可能必须使用X、Y选项,因为拖动会将其放入堆栈视图中。

 类似资料:
  • 我在UIViewController中有一个UITableView作为视图的一部分。我正在尝试根据文本的长度自动调整表格单元格的大小。它不会设置textview的文本,单元格将以idCellTextView单元格的标准高度结束。我已经四处搜索过,正在尝试从单元格内的文本视图相对于内容视图和代码在自动布局中使用固定,如下所示: 与问题相关的视图控制器的其余部分显示在以下位置:

  • 我必须在屏幕上显示一个带有多个“开关”控件iPhone弹出窗口。并分别通过打开/关闭操作在弹出窗口上添加和删除子视图。有关情况的更好说明,请参见下面 就像上面一样,当“添加邮件”开关为“ON”时,弹出视图必须再次增加高度,再添加两个子视图。最后看起来像这样, 就是这样。我正在通过我的应用程序使用自动布局,这是我感到困惑的地方。我知道我可以删除弹出窗口,每次都可以再删除一个新的弹出窗口,但这似乎是新

  • 我有一个带有一堆单元格的表视图(自定义单元格,它只有它的内容视图)。 在 中,我正在向自定义单元格的content视图添加一个预定义的UIView(它有几个子视图)。我之前为UIView及其子视图设置了所有约束。 最后但并非最不重要的是,我为我的自定义单元格的内容视图(superview)和UIView设置了垂直和水平约束,UIView是在(subview)之前添加的。 约束字符串如下所示: 不幸

  • 我正在尝试实现这个功能: 在表视图的每个单元格中显示标题、说明和图像。但是,图像可能为零。要求是: 当image为nil时,自动展开标签以适应整个单元格 Tableview单元格高度应根据描述标签自动调整。 需要使用stackView 我以编程方式做到了这一点: > 设置此为tableview: 创建2个堆栈视图:一个用于标签,一个用于标签图像: 然而,这段代码不会自动调整tableview单元格

  • 问题内容: 在我的应用程序中,我有一个表格视图,每个单元格中都有一个图像,标签和文本视图。我希望能够根据文本视图中的内容量自动调整单元格的大小。(文本视图是最下面的文本。) 到目前为止,我已经添加了正确的约束。文本视图的前导,尾随,顶部和底部,并且已禁用滚动和编辑。 在我的tableViewController.swift文件中,我编写了以下代码: 但是,这不起作用,因为当我在文本视图中添加更多文

  • 我有一个具有两个垂直约束的视图,一个1:1的纵横比坐标系和一个中心对齐,因此它会根据屏幕的高度自动调整大小。现在,这个视图以UIImageViews的形式填充了一系列较小的子视图。我希望这些图像视图能够自动调整与超级视图成比例的大小,但我不知道如何做到这一点。我在superview中尝试了无数种约束,但都以一团糟而告终。有什么想法吗?