Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection
Posted
技术标签:
【中文标题】Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection【英文标题】:Swift: Populating numberOfSectionsInTableView and numberOfRowsInSection dynamically 【发布时间】:2015-10-26 15:36:08 【问题描述】:我正在尝试在 Swift 中实现一个 ios 表格视图,它执行以下操作:
通过计算当前存储在我的 Core Data 实体中的对象数量来生成多个部分 每个部分创建 ONE ROW,每一行代表/保存我的 Core Data 实体中的一个对象请原谅杂乱无章的代码,它需要整理。
这是我设置节数的函数。它只是返回获取的结果数量,并将其作为我的部分数量。太好了。
override func numberOfSectionsInTableView(tableView: UITableView) -> Int
let count = self.fetchedResultsController.fetchedObjects?.count
if (count != 0)
return count!
else
return 0
但是我不知道如何调整项目文件中包含的基本 numberOfRowsInSection 方法。它在 NSRangeException 上跳闸,因为数组超出了 0 的范围。我猜这是 [section] 数组。
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let sectionInfo = self.fetchedResultsController.sections![section]
return sectionInfo.numberOfObjects
仅返回 1,对于我想要的每个部分的单行,这是行不通的,属于上述相同的错误。
请哪位程序员给我指出正确的方向。
谢谢!
编辑:每当我返回任何大于 1 的 numberOfSectionsInTableView 时,都会出现错误。
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int
let sectionInfo = self.fetchedResultsController.sections![section]
return sectionInfo.numberOfObjects
【问题讨论】:
为什么不直接在tableView(tableView: UITableView, numberOfRowsInSection section: Int)
中返回一个?
我试过了,但我得到了以下异常:2015-10-26 16:35:01.842 app name*[9504:2278828] *** 由于未捕获的异常而终止应用程序 'NSRangeException ',原因:'** -[__NSArrayM objectAtIndex:]: index 1 超出范围 [0 .. 0]'
所以您在其他地方有问题,请发布您的表格视图控制器的代码
【参考方案1】:
override func numberOfSectionsInTableView(tableView: UITableView) -> Int
return self.fetchedResultsController.sections!.count
这里返回的是节数,而不是行数。
【讨论】:
这个答案不正确。应该有return self.fetchedResultsController.sections!.count
以上是关于Swift:动态填充 TableView 中的部分数量和 numberOfRowsInSection的主要内容,如果未能解决你的问题,请参考以下文章
Swift 中的 UITableView 无法识别 UINavigationBar,填充已关闭,部分 tableview 被隐藏
根据内容动态调整tableview单元格的高度 - iOS Swift
ViewController 中的 Swift TableView 在标签栏中的 Navigation VC 中:单元格不会填充列表中的数据
使用动态tableView的tableViewCell中的动态collectionViewCell执行Segue With Identifier,swift