当 section 中的 numberOfRows = 0 时隐藏 tableview 标题
Posted
技术标签:
【中文标题】当 section 中的 numberOfRows = 0 时隐藏 tableview 标题【英文标题】:Hide tableview header when the numberOfRows in section = 0 【发布时间】:2017-03-17 23:54:29 【问题描述】:如果该部分没有返回任何行,我目前正在尝试隐藏 tableview 标题。这是我目前拥有的,但它在运行时返回 EXC_BAD_ACCESS 错误:
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat
let headerHeight: CGFloat
switch section
case 0:
headerHeight = 0
case 1:
if peopleImagesTableView.numberOfRows(inSection: 1) == 0
headerHeight = 0
else
headerHeight = 40
default:
headerHeight = 0
return headerHeight
【问题讨论】:
你需要返回浮点值。 虽然代码行导致错误? @rmaddy 很抱歉回答这个问题。:d @TusharSharma 问题是 OP 已经返回了一个浮点值。 @rmaddy 变量是 CGFloat 类型,但他的返回值为 40 或 0。可以吗?? 【参考方案1】:我认为问题出在if peopleImagesTableView.numberOfRows(inSection: 1) == 0
这一行。因为tableView(_:heightForHeaderInSection:)
在tableView(_:numberOfRowsInSection:)
之前运行,所以它无法知道行数和应用程序崩溃。您应该检查您的数据数组,而不是调用 numberOfRows
函数。例如:
if data[1].count == 0
headerHeight = 0
else
headerHeight = 40
【讨论】:
以上是关于当 section 中的 numberOfRows = 0 时隐藏 tableview 标题的主要内容,如果未能解决你的问题,请参考以下文章
如何区分 UITableView 中的 UITextField?
由于TableView的Section的头部和尾部高度设置的不规范引起的部分Section中的图片无法正常显示
UITableview Section View 上的 UIbutton 没有动画
如何处理 iOS UITableView 中的动态 Sections 和 Rows