我想用一堆文件夹填充我的表视图(类似于Apple Notes App的文件夹结构屏幕)。我希望电视中的第一个项目是一个单元格,该单元格可以合并其他文件夹中所有内容。我可以显示所有文件夹,但是在尝试确定如何显示“组合内容”文件夹时遇到了麻烦。所有单独的文件夹都在CoreData上制作,并通过NSFetchedResultsController进行馈送。
我创建了一个仅包含一个文件夹实例的数组,以用作组合文件夹的对象。我有以下代码尝试创建2个部分(1个用于组合,另一个用于单独的文件夹),但此刻它仅显示我在情况0中输入的内容。我这样做是对的吗?
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
switch section {
case 0:
return comboFolder.count
case 1:
return fetchedRC.fetchedObjects?.count ?? 0
default:
return 0
}
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "folderCell", for: indexPath) as! FolderTableViewCell
switch indexPath.section {
case 0:
let folder = comboFolder[indexPath.row]
cell.updateComboFolder(with: folder)
case 1:
let folder = fetchedRC.object(at: indexPath)
cell.update(with: folder)
default:
print("default")
}
return cell
}
答案 0 :(得分:0)
这是一个具有基本设置的示例项目-https://github.com/nambatee/CombinedFolders1
诀窍是调整indexPath
。您正在使用2个部分,但是您的NSFetchedResultsController
仅知道1个部分。因此,您需要注意不要向NSFetchedResultsController
索要索引1
中的对象。