Error[8]: Undefined offset: 5, File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 121
File: /www/wwwroot/outofmemory.cn/tmp/plugin_ss_superseo_model_superseo.php, Line: 473, decode(

概述我有一个UITableView,如果满足某些条件,我想进入编辑状态.切换编辑的主要方法是通过编辑按钮. 所以我的视图元素是 let tableView = UITableView()let editButton = UIButton() 并且tableView是否应该处于编辑模式来自: let editing = BehaviorSubject(value: false) 哪个将使用以下内容连接 我有一个UItableVIEw,如果满足某些条件,我想进入编辑状态.切换编辑的主要方法是通过编辑按钮.

所以我的视图元素是

let tableVIEw = UItableVIEw()let editbutton = UIbutton()

并且tableVIEw是否应该处于编辑模式来自:

let editing = BehaviorSubject(value: false)

哪个将使用以下内容连接到tableVIEw:

editing.subscribeNext { isEditing in  tableVIEw.setEditing(isEditing,animated: true)}

当点击编辑按钮时,我想要将新值推送到编辑,即取消发送到编辑的最新值.最近的值可能是通过点击editbutton设置的,或者它可能来自其他地方.

我不明白如何将按钮按下的流与用于编辑的流组合在一起,以便在没有无限循环的情况下进行编辑.

Obervable.combineLatest(editbutton.rx_tap.asObservable(),editing) { _,isEditing in  editing.onNext(!isEditing)}

我知道tableVIEw有一个编辑属性,但我不想依赖它,因为我正在寻找一个更通用的解决方案,我可以在其他地方重用.我也不打算在实例var中跟踪isEditing的值,或者甚至不想作为Variable(),因为我正在寻找一个无状态的,基于流的解决方案(如果这是可能的话).

谢谢!

解决方法 在RxSwift GitHub问题论坛的帮助下,我现在已经解决了:).关键是最新的.我已经在下面列举了一个例子,以防它可以帮助其他任何人. editbutton是打开或关闭编辑模式的主要方式,我已经将通过tableVIEw.rx_itemSelected发送的事件作为附加输入示例包含在内(在这种情况下,我希望编辑在任何时候选择项目时结束).

let isEditing = BehaviorSubject(value: false)let tableVIEw = UItableVIEw()let editbutton = UIbutton()tableVIEw.rx_itemSelected  .map { _ in false }  .bindTo(isEditing)editbutton.rx_tap.withLatestFrom(isEditing)  .map { ![+++] }  .bindTo(isEditing)isEditing.subscribeNext { editing in  tableVIEw.setEditing(editing,animated: true)}

注意:即使表当前未处于编辑模式,此解决方案也会在每次选择项时将.Next(false)发送到isEditing.如果您认为这是一件坏事,并希望过滤rx_itemSelected只发送.Next(false)如果表实际上处于编辑模式,您可以使用withLatestFrom和filter的组合来完成此 *** 作.

总结

以上是内存溢出为你收集整理的如何让RxSwift中的主题将值推送到自身而不创建无限循环全部内容,希望文章能够帮你解决如何让RxSwift中的主题将值推送到自身而不创建无限循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

)
File: /www/wwwroot/outofmemory.cn/tmp/route_read.php, Line: 126, InsideLink()
File: /www/wwwroot/outofmemory.cn/tmp/index.inc.php, Line: 166, include(/www/wwwroot/outofmemory.cn/tmp/route_read.php)
File: /www/wwwroot/outofmemory.cn/index.php, Line: 30, include(/www/wwwroot/outofmemory.cn/tmp/index.inc.php)
如何让RxSwift中的主题将值推送到自身而不创建无限循环_app_内存溢出

如何让RxSwift中的主题将值推送到自身而不创建无限循环

如何让RxSwift中的主题将值推送到自身而不创建无限循环,第1张

概述我有一个UITableView,如果满足某些条件,我想进入编辑状态.切换编辑的主要方法是通过编辑按钮. 所以我的视图元素是 let tableView = UITableView()let editButton = UIButton() 并且tableView是否应该处于编辑模式来自: let editing = BehaviorSubject(value: false) 哪个将使用以下内容连接 我有一个UItableVIEw,如果满足某些条件,我想进入编辑状态.切换编辑的主要方法是通过编辑按钮.

所以我的视图元素是

let tableVIEw = UItableVIEw()let editbutton = UIbutton()

并且tableVIEw是否应该处于编辑模式来自:

let editing = BehaviorSubject(value: false)

哪个将使用以下内容连接到tableVIEw:

editing.subscribeNext { isEditing in  tableVIEw.setEditing(isEditing,animated: true)}

当点击编辑按钮时,我想要将新值推送到编辑,即取消发送到编辑的最新值.最近的值可能是通过点击editbutton设置的,或者它可能来自其他地方.

我不明白如何将按钮按下的流与用于编辑的流组合在一起,以便在没有无限循环的情况下进行编辑.

Obervable.combineLatest(editbutton.rx_tap.asObservable(),editing) { _,isEditing in  editing.onNext(!isEditing)}

我知道tableVIEw有一个编辑属性,但我不想依赖它,因为我正在寻找一个更通用的解决方案,我可以在其他地方重用.我也不打算在实例var中跟踪isEditing的值,或者甚至不想作为Variable(),因为我正在寻找一个无状态的,基于流的解决方案(如果这是可能的话).

谢谢!

解决方法 在RxSwift GitHub问题论坛的帮助下,我现在已经解决了:).关键是最新的.我已经在下面列举了一个例子,以防它可以帮助其他任何人. editbutton是打开或关闭编辑模式的主要方式,我已经将通过tableVIEw.rx_itemSelected发送的事件作为附加输入示例包含在内(在这种情况下,我希望编辑在任何时候选择项目时结束).

let isEditing = BehaviorSubject(value: false)let tableVIEw = UItableVIEw()let editbutton = UIbutton()tableVIEw.rx_itemSelected  .map { _ in false }  .bindTo(isEditing)editbutton.rx_tap.withLatestFrom(isEditing)  .map { ! }  .bindTo(isEditing)isEditing.subscribeNext { editing in  tableVIEw.setEditing(editing,animated: true)}

注意:即使表当前未处于编辑模式,此解决方案也会在每次选择项时将.Next(false)发送到isEditing.如果您认为这是一件坏事,并希望过滤rx_itemSelected只发送.Next(false)如果表实际上处于编辑模式,您可以使用withLatestFrom和filter的组合来完成此 *** 作.

总结

以上是内存溢出为你收集整理的如何让RxSwift中的主题将值推送到自身而不创建无限循环全部内容,希望文章能够帮你解决如何让RxSwift中的主题将值推送到自身而不创建无限循环所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1003906.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存