我想在 android 中创建类似自动完成 TextView 的东西,这意味着在覆盖 View 中显示搜索结果的 TableView 。为此,我制作了一个包含表格 View 的 View (需要显示特定背景)。这很好用,但是当 tableview 只有 1 行时,tableview 不会调整其高度。
我写
tableView.tableFooterView = UIView()
但它只是抑制了分隔符的多余部分,并没有改变高度。
你能帮帮我吗?
最佳答案
您应该手动更新 tableView 的框架。 如果您使用自动布局,请为 tableView 的高度添加一个 IBOutlet:
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
我假设 tableView 的高度受一些固定值的限制。如果它取决于屏幕高度,只需将 maxTableViewHeight
替换为计算变量即可。
let maxTableViewHeight = CGFloat(300)
创建一个方法来更新 tableView 的高度。如果内容高度小于 maxHeight,它将确保调整 tableView 的大小:
func updateTableViewFrame() {
autocompleteTableView.layoutIfNeeded() //to make sure you have updated contentSize
let height = autocompleteTableView.contentSize.height
heightConstraint.constant = min(height, maxTableViewHeight)
view.layoutIfNeeded()
}
现在您所要做的就是在数据源更新时调用此方法。在您的情况下,这应该是用户输入的更改值。
关于ios - swift 将表格 View 的大小调整到最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974575/