问题标签 [diffabledatasource]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
32 浏览

ios - 静态单元格的 UICollectionViewDiffableDataSource 快照

在我的 UICollectionView 中,我有一个标题补充视图,它是静态的并且不接收任何要配置的值。

因此,当我为 UICollectionViewDiffableDataSource 创建快照时,我需要将此部分的 () 作为数据传递给该部分,以填充该部分。但是 () 不是 Hashable,所以它不起作用。

那么,当我通常使用 diffable 数据源来填充 UICollectionView 时,如何处理这样的静态内容呢?

0 投票
1 回答
83 浏览

ios - 添加/删除单元格时的集合视图列表单元格,如何更新单元格的indexPath?

我正在处理集合视图列表单元格,我想知道当我在 iOS14 上使用 diffable 数据源和快照时如何更新 indexPath。

在我的 ViewController 的 viewdidload 中,我调用了注册单元信息的 configureDataSource 方法。另外,我有一个 displayEvents 方法,它从后端获取事件数据并将它们显示在集合视图单元格上。eventDataSource 包含一个事件数组,因此当获取事件数据时,它会更新数组,以便 ViewController 可以显示数据。

我还有一个从 EventActionModalViewController 调用的 addEvent 函数,就像用户键入事件名称并发送 .save API 请求以将数据存储在数据库中一样。它工作正常,我的意思是成功添加数据后端并在集合视图列表上显示新事件。但是,问题是集合视图的 indexPath 没有更新。

例如,如果集合视图中已经有两个事件,则它们的 indexPath 为[0,0] and [0,1]. (我把它们打印出来了print("here is the indexPath: \(indexPath)"))并且在我添加新事件之后,集合视图上有三个事件,这是正确的,但是 indexPath 变成了[0,0],[0,0] and [0,1]. 所以我认为已经显示事件的 indexPath 没有更新。应用快照不足以更新每个单元格的 indexPath 吗?我在想即使在应用快照之后,它仍然需要重新加载集合视图以将新的 indexPath 应用到单元格,或者类似的东西。

有没有人遇到过同样的问题?如果是这样,您是如何将新的 indexPath 应用到单元格的?我还有一个删除单元格的功能,但它也不会更新 indexPath。顺便说一句,我正在开发适用于 iOS14 的应用程序,所以不能使用适用于 iOS15 的应用程序......

0 投票
0 回答
27 浏览

uitableview - 使用 diffable 数据源的 tableView 内的 collectionView

我在使用可区分数据源的 tableViewCell XiB 中使用 collectionView 时遇到问题。我想像男装和女装一样显示两个部分。我不知道如何迭代每个案例并相应地显示记录请检查下面的代码.传递tableView的索引路径并在collectionView中使用以显示基于行的部分。我不知道如何创建正确的数据源和快照。表视图控制器类:

类别单元视图控制器

0 投票
1 回答
84 浏览

swift - 如何使用 NSTableViewDiffableDataSource 通过 NSTableView 加载数据

我正在尝试学习如何NSTableViewDiffableDataSource使用NSTableView. 我能够在 iOS 中使用UITableViewDiffableDataSourceUICollectionViewDiffableDataSource加载数据,因为我在网上找到了一些示例。但我无法NSTableViewDiffableDataSource在 Cocoa 中使用。

在以下情况下,我有一个NSTableCellView名为TestTableCellView的子类,它显示三个字段:名字、姓氏和他或她的出生日期(以字符串形式)。

嗯......应用程序崩溃并出现错误“无效参数不令人满意:快照。 ”几天前,我测试了另一个示例,它也在同一行(dataSource.apply)崩溃。NSTableViewDiffableDataSource我在网上找不到很多例子。我发现的唯一例子是他的主题,这没有帮助。无论如何,我做错了什么?我的 Xcode 版本是 13.1。谢谢。

0 投票
1 回答
109 浏览

ios - 应用 UITableViewDiffableDataSource 快照后,TableView 滚动到顶部

我正在使用 UITableViewDataSourcePrefetching 进行分页。

这些值将从领域本地存储中获取。

我会得到一个对象数组。这些值将应用于现有的 UITableViewDiffableDataSource 数据源。

应用快照后,tableview 滚动到顶部。

我已经验证了我所有的 ChatMessage 对象都有唯一的 hashValues。

如何防止滚动?

链接到视频TableView_scroll_issue_video

鉴于我的代码片段

0 投票
0 回答
132 浏览

ios - 绑定视图模型和 diffable 数据源

我想使用滑动删除从快照中删除对象,但首先我需要进行位于视图模型中的网络调用。如果结果是成功,则移除该对象,否则什么也不做。

我正在使用自定义视图模型类来获取数据和附加部分和项目,我也希望视图模型处理所有网络调用。将网络调用放入tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath)不是一种选择。

这是一个例子:

0 投票
3 回答
40 浏览

ios - iOS - 加载集合视图后是否有任何方法会调用(设置布局,设置数据源)

我想在集合视图加载完成后滚动到特定的索引路径。是否有任何方法通知集合视图已加载(设置布局,设置数据源)

注意:我使用 DiffableDatasource 来显示集合视图。我尝试了 .apply 快照完成 - 不适合我。

0 投票
0 回答
24 浏览

ios - 在 iOS 13 上初始化后 UICollectionview 未显示

这是一个非常具体的问题,但我在我的集​​合视图上使用 UICompositional Layout 和 Diffable Data Source,在 iOS 15 上一切正常,问题在 iOS 13 上,发生了什么:

  1. 在 init 和 viewDidLoad 之后,collectionview 内容大小为零,我还检查了集合视图布局,内容大小也为零。但是单元格正在被填充,当我打印出来时,一切都在那里,除了它们的帧都为 0。

  2. 旋转屏幕后,它神奇地出现了。

  3. 通过在集合视图上调用 layoutIfNeed() 来强制集合视图在初始化后更新没有帮助。

我像这样初始化集合视图:

对于我的自定义集合视图类 init 如下所示:

我不知道问题出在哪里或如何解决,在此先感谢您的帮助。

0 投票
1 回答
18 浏览

swift - DiffableDataSource tableview 标头中的问题

我正在使用使用 DiffableDataSource 的 tableView 并且只有我在 header 中遇到的问题。我正在使用 viewForheaderSections 方法来调用 header 标题视图出现但在底部位置而不是列表顶部请查看代码谢谢。