我正在尝试过滤 TableViewDiffableDataSource 中的用户列表。过滤后的用户数组传递给以下函数:
private func updateUserCell(_ users: Users? = nil) {
guard let newUsers = users else {
print("No users to show")
return
}
snapShot.deleteItems(viewModel.userList)
dataSource!.apply(snapShot, animatingDifferences: false)
if newUsers == [] { return }
var snapShot = dataSource?.snapshot()
snapShot?.appendItems(newUsers, toSection: .main)
dataSource!.apply(snapShot!, animatingDifferences: true)
}
调试显示用户已正确附加到快照中。但应用显示正确数量的过滤用户,但仅显示完整列表顶部的用户。
即,如果我有完整的用户列表 [Chloe、Max、John、Martin]。搜索“jo”只会显示 Chloe。搜索“ma”会显示 Chloe 和 Max,而不是 Max 和 Martin。