问题标签 [rxdatasources]

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 回答
7022 浏览

ios - 如何使用 RxSwift 和 RxSwiftDataSources 将表视图与表示不同数据类型的多个部分绑定?

我正在尝试使用 RxSwift 创建一个包含多个部分的表格视图。每个部分显示代表不同类型的数据。

我找到了这个RxSwiftDataSources库并从他们的文档中实现了这个例子。

以下是该示例如何实现的快速概览:

定义了自定义数据类型CustomData

然后,添加该部分的表示(注意SectionModelType在此处实现):

最后,创建一些示例数据并将其绑定到表视图:

我现在想修改示例,并且只想在第二部分显示Strings 而不是实例,所以有点像这样:CustomData

这显然不会编译,因为sections现在包含不同类型SectionOfCustomData的元素SectionOfString。我试图通过尝试将部分声明为来解决此问题,[SectionModelType]但这不起作用,编译器抱怨:

协议“ SectionModelType”只能用作通用约束,因为它具有 Self 或关联的类型要求

0 投票
2 回答
2857 浏览

ios - 订阅位于 UITableViewDataSource 内的 UITableViewCell 中的 UIButton.rx.tap

假设我有一个UIButtonin a UITableViewCell。将单元格从UITableView我想订阅的UIButton.rx.tap. 问题是,如果 myUITableViewCell多次出队,订阅将保留。Disposable目前,我通过在 my 中分配一个属性、在UITableViewCell创建订阅时设置它并调用Disposable.dispose()on来解决这个问题UITableViewCell.prepareForReuse(),但是据我了解,以需要您调用的方式实现功能Disposable.dispose()意味着您做错了什么。

有没有更好的方法来完成订阅的唯一性而无需重新分配UIButton

0 投票
1 回答
6124 浏览

ios - RxSwift 和 UICollectionView、UITableView

我有一个问题:如何使用 RxDataSources 在 Rx-way 中正确实现这样的场景:

我们有一个带有 UICollectionView 的类(或 UITableView,在我的例子中是集合视图),结果不会立即出现,它们会在一段时间后异步出现。

我已经根据这里的教程用部分实现了我的模型: https ://github.com/RxSwiftCommunity/RxDataSources

但是数据只在just那里创建一次:

如果我的物品在一段时间后可用并且我希望我的收藏视图自动更新,该怎么办?

谢谢你的帮助。

0 投票
2 回答
1258 浏览

rx-swift - 使用 RxDataSource 自行调整 collectionViewCells 的大小

如何使用 RxDataSource 实现自定大小 collectionViewCells?

我试过设置

但是当dataSourceObservable更改时应用程序崩溃。

我试过在里面设置单元格大小

这不是一个好主意,因为单元格重叠,这是因为我没有使用

现在,是否可以仅使用 observables 正确布局单元格大小?那不是叫类似的东西

里面collectionView sizeForItemAt

0 投票
1 回答
1929 浏览

ios - RxSwift DataSource configureCell 无法分配功能

我正在尝试将 RxSwift/RxDataSource 与 TableView 一起使用,但我无法为 configureCell 分配现有函数。下面的代码:

Xcode 抛出以下错误:

/Users/.../BaseTableViewController.swift:39:36:无法分配类型“(TableViewSectionedDataSource,UITableView,IndexPath,TableSectionModel.Item)-> UITableViewCell!”的值 输入“(TableViewSectionedDataSource,UITableView,IndexPath,TableSectionModel.Item)-> UITableViewCell!”

错误被抛出

dataSource.configureCell = 单元格

你有什么主意吗?

谢谢

0 投票
1 回答
402 浏览

testing - RxDataSources 测试

我用 RxDataSources 的部分创建了 tableView。

视图控制器

当新元素添加到数组时,sectionsObservable 会发出事件。

我想测试一个正确的元素是否在正确的 indexPath 上。

视图模型

它在应用程序中工作,但测试失败。致命错误:索引超出范围

这都是因为异步。如何测试这个案例?


编辑 1:视图模型

0 投票
1 回答
1020 浏览

swift - 无法使用 RxSwift/RxRealm 过滤对象

我是响应式编程的新手,在从特定索引过滤和访问对​​象时遇到困难。下面是我的代码片段。

  1. 我在搜索栏中收到查询,但过滤似乎不起作用。

  2. 当在集合视图中选择一个项目时,我得到了 IndexPath,但我想知道如何根据索引路径访问特定的模型属性。

我正在使用RxRealmRxRealmDataSources,因为我的数据存储在设备的领域数据库中。

0 投票
0 回答
321 浏览

ios - 使用 RxSwift 时没有出现 CollectionView 单元格分隔符

当我使用 RxSwift 填充 Collection View 时,CollectionView 单元格的分隔符没有出现。我正在使用 RxDataSources 而不是类函数。我相信这个函数drawSeparatorIfNeeded并没有在某个地方被调用,有什么解决方法吗?

集合视图准备:

单元配置:

细胞结合:

在 Reveal 中检查 CollectionView 显示分隔符 UIImageView 的高度为 0,但是当我使用 vanilla DataSource 方法时,它按预期工作。

0 投票
1 回答
518 浏览

swift - Observable 被提前处理

我认为如果我解释我想要实现的目标会更好,因为我认为错误在于我对 Observables 如何工作的误解。

我有一个包含 UITableView 的 UIViewController 我也在使用 RxSwift 和 RxDataSources,所以我正在绑定我的 tableView 项目,如下所示:

其中vm是一个 viewModel,它包含:

模型在哪里:

这一切都在第一次很好,tableview 显示项目,但来自debug()的打印:

问题是我不想处理数据源,因为我不想根据用户操作来更新它。如果用户单击 tableViewCell 我想更新模型。关于如何实现这一目标的任何想法?

对不起这么大的问题。

0 投票
1 回答
71 浏览

ios - RealmSwift 获取每个 T 对象

我有对象列表,T我想计算它们的总和(T对象)

T对象有一个返回Int值的方法。获取每个对象并准备值数组(flatMap函数)的主要思想。下一步将是reducefunc 与Int值。

问:如何获得每个T对象?