我想在android中创建类似自动完成文本视图的东西,这意味着在叠加视图中的tableview显示searh的结果。为此,我创建了一个包含tableview的视图(需要显示特定的背景)。这工作正常,但当tableview只有1行时,tableview不会调整其高度。
我写
tableView.tableFooterView = UIView()
但它只是抑制了多余的分隔符,而不是改变高度。
你能帮我吗?
答案 0 :(得分:0)
您应该手动更新tableView的框架。 如果您正在使用autolayout,请为tableView的高度添加IBOutlet:
@IBOutlet weak var heightConstraint: NSLayoutConstraint!
我认为tableView的高度受限于一些固定值。如果它取决于屏幕高度,只需用计算变量替换maxTableViewHeight
。
let maxTableViewHeight = CGFloat(300)
创建一个更新tableView高度的方法。如果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()
}
现在,您需要做的就是在数据源更新时调用此方法。在你的情况下,这应该改变用户输入的值。