问题标签 [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 回答
1147 浏览

swift - RxSwift 重新加载动画中的 RxDatasource 不更新数据源

RxSwift [RxTableViewSectionedAnimatedDataSource] 中的 RxDatasource 重新加载动画不更新数据源。我在做什么错误?我什至无法正确地将我的动作与按钮绑定。

TableDataSource 和表格编辑命令

这是我的控制器及其扩展

控制器的视图模型

0 投票
0 回答
271 浏览

ios - 使用 RxDataSources 和 RxSwift 在 CollectionView 中泄漏

我有一个带有集合视图的表格视图单元格。两者都通过 rxdatasource 绑定,我在加载视图时使用仪器泄漏。关于这可能是什么原因的任何想法?谢谢。

泄漏

图片

主页视图控制器

模型产品细胞

0 投票
0 回答
617 浏览

ios - 带有滑动操作的 RxSwift TableView

我正在使用RxSwift框架RxDataSources来设置表格视图:

我试图让我UISwipeActionsConfiguration工作UITableViewDelegate,并将委托设置为:

tableView.rx.setDelegate(self).disposed(by: bag)

同时将委托方法设置为:

标头被调用并按预期工作,这意味着应将委托设置正确。


在没有 RxSwift 的情况下执行此操作,适用于滑动操作。

有谁知道如何trailingSwipeActionsConfigurationForRowAt使用 RxDatasources,因为我只能开始viewForHeaderInSection工作?

0 投票
1 回答
212 浏览

ios - 防止第一响应者在 tableview 重新加载时辞职

我正在使用 RxSwift,目前,我有一个可以内联编辑的地址列表

IE:用户单击按钮,单元格转换为编辑模式,本质上显示一些 UITextFields

现在的问题是,当我将 TextField 的输入绑定到我的模型时,TableView 会重新加载并因此键盘关闭,我也尝试过 RxAnimatableDataSource 但无济于事,它仍然会在每次击键时关闭键盘。

视图模型:

这是我的 ViewController 将数据源绑定到 tableview

0 投票
1 回答
679 浏览

rx-swift - RxDataSources headerView 和 footerView

问题:在从网络服务检索结果之前,CollectionView 页眉和页脚不显示。它们在从服务中检索到项目后显示。

我想要的结果::在从 api 调用检索项目之前显示 CollectionView 页眉和页脚

我尝试过的: 在初始 viewDidLoad 上使用带有页眉和页脚的不同数据源,并在加载结果时将该数据源设置为 nil。没用

我的(不是那么优雅)解决方案: 在 viewDidLoad 上添加 headerView 和 footerView 子视图,并在结果来自服务时将它们替换为 collectionView。

这个问题有更优雅的解决方案吗?

我的代码:只留下与 Rxswift/RxDataSources 相关的部分

0 投票
2 回答
579 浏览

ios - 如何使用 RxDataSource 制作动态部分?

我要实现的目标的概述我正在尝试制作一个通知表格视图,并且每个通知都按其创建日期分组,因此表格视图部分将是创建日期的数量,每个部分都包含在此日期创建的通知部分标题。我进行了很多搜索,但没有得到绝对的答案,如何使用 RxDataSource 使数组动态加载通过 API 接收的日期?

我所发现的只是将这些部分设置为静态,如下所示

这是我的结构

这是数据模型

我想要达到的目标

在此处输入图像描述

需要标题是这样的

0 投票
2 回答
314 浏览

ios - RxDataSources 在数据源内容的每次更改时闪烁

最初,该应用程序显示一个部分的 UIViewCollection,然后在接收到内容后出现新的部分。用户滚动集合,新的部分添加到集合的底部。

我使用 MVVM,因此在我的 ViewModel 中,我向内容数组 (model.content) 添加了一个新部分,然后通知绑定到 collectionView.rx.items(dataSource: self.dataSource) 的发布者。

因此,每次我添加该部分时,集合都在闪烁,所有单元格都在重新加载,这使得可怕的用户体验一切都在闪烁、闪烁、图片消失和出现。有没有办法不重新加载所有集合而只重新加载差异。我认为默认情况下它应该像这样工作。也许通知 BehaviorSubject 的方法是错误的想法?

我也尝试使用 RxTableViewSectionedAnimatedDataSource,但在添加每个新部分后,所有内容都会消失并将用户移动到集合视图的最顶部。

请知道如果我只是在底部添加一个部分,为什么要重新加载所有集合,如何防止它?

编辑

0 投票
1 回答
63 浏览

ios - 如果弱自我在 RxDataSource 函数中为零,如何正确返回带有重用标识符的 CollectionViewCell?

我有一个问题,由于内存泄漏,在用于使用 RxDataSource 的 CollectionView 的 dataSource 函数中 [unowned self] 更改为 [weak self]。我现在收到了返回一个没有reuseIdentifier 的空白collectionViewCell 的崩溃。我知道我需要返回一个带有重用 ID 的单元格。

建议进行哪些更改以正确处理此问题?

有人建议在 viewDidLoad() 中设置 collectionView.dataSource = nil 可以解决这个问题......

我在想而不是在'guard'检查中返回CanvasItemCollectionViewCell(),我返回collectionView.dequeueReusableCell(for:indexPath,cellType:CanvasItemCollectionViewCell.self),但是如果self = self失败,这不意味着collectionView是垃圾吗?

这是一个难以调试的问题,因为这种崩溃不会始终如一地发生。

这里有一些截图来描绘我正在看的东西。

RxData源代码:

崩溃

在此处输入图像描述

0 投票
1 回答
52 浏览

ios - RxDataSource:在 TableViewCell 中嵌套 CollectionView

部分定义:

我有这样的数据源:

在组件情况下,我有 1 个单元格,在此单元格中我创建 CollectionView:

我收到这样的错误:“断言失败:这是一个警告您之前已经在某处设置了委托(或数据源)的功能。您尝试执行的操作将清除该委托(数据源)并且意味着您的某些依赖于设置的委托(数据源)的功能可能会停止工作。”

我试图通过设置collectionView datasource = nil 和delegate = nil 来修复它,但它再次出现错误“代理从第一次设置时更改。”

谁能帮我?谢谢大家。对不起,我的英语不好

0 投票
1 回答
38 浏览

swift - 使用 RxDatasources 绑定到数据源

我有一个从服务器获取的模型列表,基本上我得到了以下数组:

}

所以我想在我的tableview.

现在我也有这个结构,它是这个模型的包装器:

我想要做的是使用创建数据源RxDatasources并绑定到它,如下所示(ContactsViewController.swift):

但我不确定我应该做什么。我试过这样的事情:

我使用combineLatest, 因为我还有一个可观察的 ( self.contactViewModel.changedStatusForContact) 来通知某个联系人已更改(当您点击联系人单元格上的某个按钮时会发生这种情况)。

那么我应该从上面的 .map 返回什么才能成功绑定到以前创建的 .mapdataSource呢?