Ios 将表格视图调整到swift中的最后一行

Ios 将表格视图调整到swift中的最后一行,ios,swift,uitableview,resize,height,Ios,Swift,Uitableview,Resize,Height,我想在android中创建一个类似自动完成文本视图的东西,这意味着在覆盖视图中的tableview可以显示搜索结果。为此,我创建了一个包含tableview的视图(需要显示特定背景)。这很好,但是当tableview只有一行时,tableview不会调整其高度 我写 tableView.tableFooterView = UIView() 但它只是抑制了分离器的多余部分,并没有改变分离器的高度 你能帮我吗 您应该手动更新tableView的框架。 如果使用的是autolayout,请为tabl

我想在android中创建一个类似自动完成文本视图的东西,这意味着在覆盖视图中的tableview可以显示搜索结果。为此,我创建了一个包含tableview的视图(需要显示特定背景)。这很好,但是当tableview只有一行时,tableview不会调整其高度

我写

tableView.tableFooterView = UIView()
但它只是抑制了分离器的多余部分,并没有改变分离器的高度

你能帮我吗


您应该手动更新tableView的框架。 如果使用的是autolayout,请为tableView的高度添加IBOutlet:

@IBOutlet weak var heightConstraint: NSLayoutConstraint!
我假设tableView的高度受到某个固定值的限制。如果它取决于屏幕高度,只需用计算变量替换
maxTableViewHeight

let maxTableViewHeight = CGFloat(300)
创建更新tableView高度的方法。如果tableView的内容高度小于maxHeight,它将确保调整其大小:

func updateTableViewFrame() {
    autocompleteTableView.layoutIfNeeded() //to make sure you have updated contentSize
    let height = autocompleteTableView.contentSize.height
    heightConstraint.constant = min(height, maxTableViewHeight)
    view.layoutIfNeeded()
}

现在,只要在数据源更新时调用此方法即可。在您的情况下,应该更改用户输入的值。

您应该手动更新tableView的框架。 如果使用的是autolayout,请为tableView的高度添加IBOutlet:

@IBOutlet weak var heightConstraint: NSLayoutConstraint!
我假设tableView的高度受到某个固定值的限制。如果它取决于屏幕高度,只需用计算变量替换
maxTableViewHeight

let maxTableViewHeight = CGFloat(300)
创建更新tableView高度的方法。如果tableView的内容高度小于maxHeight,它将确保调整其大小:

func updateTableViewFrame() {
    autocompleteTableView.layoutIfNeeded() //to make sure you have updated contentSize
    let height = autocompleteTableView.contentSize.height
    heightConstraint.constant = min(height, maxTableViewHeight)
    view.layoutIfNeeded()
}

现在,只要在数据源更新时调用此方法即可。在您的情况下,这应该更改用户输入的值。

显示您的屏幕显示您的屏幕谢谢您的回答。我已经找到了一个类似的方法,但它实际上不起作用,问题是重新加载后要确定tableview的实际大小。无论如何,我改变了方法,完全抑制了“自动完成文本视图”,谢谢你的回答。我已经找到了一个类似的方法,但它实际上不起作用,问题是重新加载后要确定tableview的实际大小。无论如何,我改变了方法,完全取消了“自动完成textview”