我想创建一个动态到tableview单元格高度的页脚。
我的初步情况如下:
如果我点击一行,它会将此单元格的高度更改为194(之前为44)
它不会显示所有行。
如果我得到页脚-150,它看起来像:
如果我关闭它看起来像所有单元格,并且我在-150处获得页脚的150在这里是白色的:
我的代码:
map
只有一行的高度为194而另一行的高度为44.任何想法如何解决问题? THX
编辑:
var selectedCellIndexPath: Int?
let selectedCellHeight: CGFloat = 194.0
let unselectedCellHeight: CGFloat = 44.0
var cellsHeight = [44, 44, 44]
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.beginUpdates()
if selectedCellIndexPath != nil && selectedCellIndexPath == indexPath.row {
selectedCellIndexPath = nil
}
else {
selectedCellIndexPath = indexPath.row
}
if selectedCellIndexPath != nil {
tableView.scrollToRow(at: indexPath, at: .none, animated: true)
}
tableView.endUpdates()
}
func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
let rowHeight:CGFloat = 44
var rowsHeight:CGFloat = 3 * rowHeight
/*for i in 0..<cellsHeight.count {
rowsHeight += CGFloat(cellsHeight[i])
}*/
let topHeight = UIApplication.shared.statusBarFrame.height + self.navigationController!.navigationBar.frame.height
let viewHeight = self.view.frame.height
let headerHeight:CGFloat = 30
let height = viewHeight - topHeight - rowsHeight - headerHeight //- 150
return CGFloat(height)
}
答案 0 :(得分:2)
要归档此内容,您只能使用单元格而不是页脚视图。
第1步:删除页脚视图。
第2步:添加日期选择器的单元格。
第3步:当您点击“开始”和“结束DateTime单元格,然后在所选单元格下方插入DateTime单元格并重新加载表格视图。
第4步:希望能解决您的问题。
如果您有任何疑问,请与我们联系。
编辑:根据讨论,您只需要使用tableFooterViewForSection删除额外的单元格分隔符。
因此,您只需添加以下行来解决问题:
tableView.tableFooterView = UIView(frame: CGRect(x:0, y:0, width:tableView.frame.width, heigth:0))
并删除func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat
方法。
希望它会对你有所帮助。