隐藏多个单元格 heightForRowAtIndexPath static tableview swift
hide multiple cells heightForRowAtIndexPath static tableview swift
我想将多个静态表格视图单元格的高度更改为零并恢复正常。
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if reminderHidden && indexPath.section == 1 && indexPath.row == 1 {
return 0
}
else {
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
}
我可以更新 bool 值,上面的方法适用于隐藏一个静态单元格。但它在返回一个值后停止。我想隐藏两个静态单元格并在更改一个布尔值时将它们恢复正常。
你需要做的是 return 0.1 在那个函数里。 0 是默认值 (44px)。
但是你会发现这样做的时候会出现很多小问题。如:
- 重新加载后调整单元格大小时,它们的布局会出错。
- 当单元格应该被隐藏时,您有时可以在它们周围的单元格下面看到它们的内容
我发现更好的解决方案是(如果可能的话)将要隐藏的单元格分组。然后在数据源中将隐藏时该部分的行数设置为 0。这种方法仍然存在问题,但没有那么多。
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 1 && toggle.on == false {
return 0.0
}
if indexPath.row == 2 {
if toggle.on == false || pickerVisible == false {
return 0.0
}
return 165.0
}
return 44.0
}
更多详细信息请访问我的博客:
http://blog.apoorvmote.com/how-to-show-and-hide-static-cells-with-uiswitch/
我想将多个静态表格视图单元格的高度更改为零并恢复正常。
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if reminderHidden && indexPath.section == 1 && indexPath.row == 1 {
return 0
}
else {
return super.tableView(tableView, heightForRowAtIndexPath: indexPath)
}
}
我可以更新 bool 值,上面的方法适用于隐藏一个静态单元格。但它在返回一个值后停止。我想隐藏两个静态单元格并在更改一个布尔值时将它们恢复正常。
你需要做的是 return 0.1 在那个函数里。 0 是默认值 (44px)。 但是你会发现这样做的时候会出现很多小问题。如:
- 重新加载后调整单元格大小时,它们的布局会出错。
- 当单元格应该被隐藏时,您有时可以在它们周围的单元格下面看到它们的内容
我发现更好的解决方案是(如果可能的话)将要隐藏的单元格分组。然后在数据源中将隐藏时该部分的行数设置为 0。这种方法仍然存在问题,但没有那么多。
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if indexPath.row == 1 && toggle.on == false {
return 0.0
}
if indexPath.row == 2 {
if toggle.on == false || pickerVisible == false {
return 0.0
}
return 165.0
}
return 44.0
}
更多详细信息请访问我的博客:
http://blog.apoorvmote.com/how-to-show-and-hide-static-cells-with-uiswitch/