UITableView的numberOfSections(in:)方法应返回什么数值?
UITableView numberOfSections(in:) 返回值的解决方案
先看你的代码结构,目前你的arrname是个空的[data]数组,而object是一个单独的data实例,里面的name、rollnumber、imge都是包含多个元素的数组。这里分两种常见情况给你说返回值怎么写:
情况1:所有数据放在同一个分区
如果你希望整个表格只有1个分区,所有数据都在这个section里展示,那直接返回1就可以:
func numberOfSections(in tableView: UITableView) -> Int { return 1 }
这种情况下,你还需要做两件事:
- 在
tableView(_:numberOfRowsInSection:)里返回object.name.count(确保你的三个数组长度一致) - 记得后续用
object来给cell赋值数据,或者把object添加到arrname里再使用
情况2:每个data对象对应一个分区
如果你想把每个data实例作为一个独立的分区,那首先得把你的object添加到arrname数组里(不然arrname是空的,返回0就没数据了),比如在viewDidLoad()里加一行:
arrname.append(object)
然后numberOfSections(in:)就返回arrname的元素个数:
func numberOfSections(in tableView: UITableView) -> Int { return arrname.count }
这种情况下,每个section的行数就是对应data对象里name数组的长度,对应的行数方法可以这么写:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return arrname[section].name.count }
另外提个小建议:Swift里类型命名要遵循大驼峰规范,把struct data改成struct Data会更符合行业惯例哦~
内容的提问来源于stack exchange,提问作者AMIT KUMAR JHAMB
相关产品推荐
相关产品推荐

