我正在使用UITableViewAutomaticDimension来设置我的UITableView单元格的高度。对于过滤器功能,我需要隐藏一些单元格,我将通过将它们的高度设置为0来隐藏它们。
然而,当我覆盖heightForRowAtIndexPath时,我需要为我想要自动调整大小的行返回一些值。我该如何设置?
tableView.rowHeight = UITableViewAutomaticDimension
tableView.estimatedRowHeight = 50
,
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if shouldHideCell == true{
return 0
}else{
return automaticHeight // I need a value here!!!
}
}
答案 0 :(得分:3)
在您的情况下,尝试在方法中设置UITableViewAutomaticDimension
,而不是在viewDidload
中设置:
override func viewDidLoad() {
super.viewDidLoad()
tableView.estimatedRowHeight = 50
....
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if shouldHideCell == true{
return 0.0
}else{
return UITableViewAutomaticDimension
}
}
我希望您使用autoLayouts
与UITableViewAutomaticDimension
合作。
请注意,在heightForRowAtIndex
方法之前调用cellForRow
,因此请确保在此之前正确设置变量shouldHideCell
。
答案 1 :(得分:2)
如果您使用UITableViewAutomaticDimension
我认为您正在使用自动布局,对吧?
如果使用自动布局,则可以通过更改具有高度或固有高度的约束的常量来“隐藏”单元格。
试试这个。