Swift,自动调整自定义表格查看单元格

时间:2017-06-26 18:58:22

标签: swift xcode uitableview swift3 tableviewcell

在我的应用程序中,我有一个表格视图,每个单元格中都有图像,标签和文本视图。我希望能够根据文本视图中的内容量自动调整单元格大小。 (文本视图是最低的文本。)

到目前为止,我已经添加了正确的约束;文本视图的前导,尾随,顶部和底部,并禁用了滚动和编辑。

在我的tableViewController.swift文件中,我编写了这段代码:

override func viewWillAppear(_ animated: Bool) { tableView.estimatedRowHeight = 100 tableView.rowHeight = UITableViewAutomaticDimension }

然而,这不起作用,因为当我向文本视图添加更多文本时,它只是切断了。

也许这与卡片看起来有点关系,我在每个单元格中都有一个UIView充当卡片。

老实说我不知道​​我做错了什么

下面的图片是我的应用程序的样子,如果有人可以提供帮助,那将非常感谢

enter image description here

4 个答案:

答案 0 :(得分:7)

检查您的约束是否如此(基于您的图像):

imageView:设置为容器的Top和Leading,具有修复高度和宽度值。

标签:您可以将其设置为图像的顶部和水平空间,并具有固定高度和宽度。

textView:导致图像,顶部空间标签,尾部和底部到容器。

继续使用

tableView.estimatedRowHeight = 100
        tableView.rowHeight = UITableViewAutomaticDimension
在viewWillAppear()

答案 1 :(得分:3)

更新为Swift 4.2

使用:

UITableView.automaticDimension

代替:

UITableViewAutomaticDimension

答案 2 :(得分:1)

确保内容模式设置为Scale To Fill的{​​{1}} 确保UITextView和卡UITextView

没有高度限制

尝试将估算的高度添加到UIView

viewDidLoad

由于override func viewDidLoad() { tableView.estimatedRowHeight = 100 tableView.rowHeight = UITableViewAutomaticDimension } 上方的UIView,可能AutoHeight无效。尝试为UITextView中的sizeToFit调用layoutIfNeededUIView方法:

cellForRowAt

您还可以尝试override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "Identifier", for: indexPath) as! CustomTableViewCell cell.vwCard.sizeToFit() cell.vwCard.layoutIfNeeded() return cell } sizeToFit以及layoutIfNeeded

希望这有效..

答案 3 :(得分:0)

将textView的底部设置为白色UIView的底部,并确保白色UIView具有左,右,顶部和底部约束条件:)

Same type of example is explained here programmatically....