问题标签 [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.
swift - RxSwift 重新加载动画中的 RxDatasource 不更新数据源
RxSwift [RxTableViewSectionedAnimatedDataSource] 中的 RxDatasource 重新加载动画不更新数据源。我在做什么错误?我什至无法正确地将我的动作与按钮绑定。
TableDataSource 和表格编辑命令
这是我的控制器及其扩展
控制器的视图模型
ios - 使用 RxDataSources 和 RxSwift 在 CollectionView 中泄漏
我有一个带有集合视图的表格视图单元格。两者都通过 rxdatasource 绑定,我在加载视图时使用仪器泄漏。关于这可能是什么原因的任何想法?谢谢。
泄漏
主页视图控制器
模型产品细胞
ios - 带有滑动操作的 RxSwift TableView
我正在使用RxSwift
框架RxDataSources
来设置表格视图:
我试图让我UISwipeActionsConfiguration
工作UITableViewDelegate
,并将委托设置为:
tableView.rx.setDelegate(self).disposed(by: bag)
同时将委托方法设置为:
标头被调用并按预期工作,这意味着应将委托设置正确。
在没有 RxSwift 的情况下执行此操作,适用于滑动操作。
有谁知道如何trailingSwipeActionsConfigurationForRowAt
使用 RxDatasources,因为我只能开始viewForHeaderInSection
工作?
ios - 防止第一响应者在 tableview 重新加载时辞职
我正在使用 RxSwift,目前,我有一个可以内联编辑的地址列表
IE:用户单击按钮,单元格转换为编辑模式,本质上显示一些 UITextFields
现在的问题是,当我将 TextField 的输入绑定到我的模型时,TableView 会重新加载并因此键盘关闭,我也尝试过 RxAnimatableDataSource 但无济于事,它仍然会在每次击键时关闭键盘。
视图模型:
这是我的 ViewController 将数据源绑定到 tableview
rx-swift - RxDataSources headerView 和 footerView
问题:在从网络服务检索结果之前,CollectionView 页眉和页脚不显示。它们在从服务中检索到项目后显示。
我想要的结果::在从 api 调用检索项目之前显示 CollectionView 页眉和页脚
我尝试过的: 在初始 viewDidLoad 上使用带有页眉和页脚的不同数据源,并在加载结果时将该数据源设置为 nil。没用
我的(不是那么优雅)解决方案: 在 viewDidLoad 上添加 headerView 和 footerView 子视图,并在结果来自服务时将它们替换为 collectionView。
这个问题有更优雅的解决方案吗?
我的代码:只留下与 Rxswift/RxDataSources 相关的部分
ios - RxDataSources 在数据源内容的每次更改时闪烁
最初,该应用程序显示一个部分的 UIViewCollection,然后在接收到内容后出现新的部分。用户滚动集合,新的部分添加到集合的底部。
我使用 MVVM,因此在我的 ViewModel 中,我向内容数组 (model.content) 添加了一个新部分,然后通知绑定到 collectionView.rx.items(dataSource: self.dataSource) 的发布者。
因此,每次我添加该部分时,集合都在闪烁,所有单元格都在重新加载,这使得可怕的用户体验一切都在闪烁、闪烁、图片消失和出现。有没有办法不重新加载所有集合而只重新加载差异。我认为默认情况下它应该像这样工作。也许通知 BehaviorSubject 的方法是错误的想法?
我也尝试使用 RxTableViewSectionedAnimatedDataSource,但在添加每个新部分后,所有内容都会消失并将用户移动到集合视图的最顶部。
请知道如果我只是在底部添加一个部分,为什么要重新加载所有集合,如何防止它?
编辑:
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源代码:
崩溃:
ios - RxDataSource:在 TableViewCell 中嵌套 CollectionView
部分定义:
我有这样的数据源:
在组件情况下,我有 1 个单元格,在此单元格中我创建 CollectionView:
我收到这样的错误:“断言失败:这是一个警告您之前已经在某处设置了委托(或数据源)的功能。您尝试执行的操作将清除该委托(数据源)并且意味着您的某些依赖于设置的委托(数据源)的功能可能会停止工作。”
我试图通过设置collectionView datasource = nil 和delegate = nil 来修复它,但它再次出现错误“代理从第一次设置时更改。”
谁能帮我?谢谢大家。对不起,我的英语不好
swift - 使用 RxDatasources 绑定到数据源
我有一个从服务器获取的模型列表,基本上我得到了以下数组:
}
所以我想在我的tableview
.
现在我也有这个结构,它是这个模型的包装器:
我想要做的是使用创建数据源RxDatasources
并绑定到它,如下所示(ContactsViewController.swift):
但我不确定我应该做什么。我试过这样的事情:
我使用combineLatest
, 因为我还有一个可观察的 ( self.contactViewModel.changedStatusForContact
) 来通知某个联系人已更改(当您点击联系人单元格上的某个按钮时会发生这种情况)。
那么我应该从上面的 .map 返回什么才能成功绑定到以前创建的 .mapdataSource
呢?