折叠表格思路及遇到的问题(tableView:viewForHeaderInSection:的section从1开始,不是从0开始)
项目需要做了一个类似qq联系人的折叠表格,思路很简单:设置每个section的header,在header上显示组名等信息,然后根据折叠与否,设置每个section中cell的数量,如果折叠,则将之设置为0,否则设置为实际的cell数量,然后刷新表格即可。
那么问题来了:
1、如果使用UITableViewStylePlain样式的表格,那么header是会在表格滑动的时候在顶部悬浮,而不是跟随表格的滑动而一起滑动。
2、如果使用了UITableViewStyleGrouped样式的表格,tableView:viewForHeaderInSection:的section的值会从1开始,而不是从0开始
解决方案:
问题1:将表格的样式设置为UITableViewStyleGrouped,这样header会随着表格滑动而滑动,不会在顶部悬停。但是此时样式会有所改变,因为UITableViewStyleGrouped表格会有默认的header及footer高度(好像是13),根据自己的需要,设置相应的header及footer即可。
问题2:产生的原因是使用sectionHeaderHeight来设置header的高度,而不是使用委托方法(tableView:heightForHeaderInSection:)来设置,这应该是个bug。