
我有一些按钮,比如let buttons = [UIbutton(),UIbutton(),UIbutton()].
let observable = Observable.of(buttons[0].rx.tap,buttons[1].rx.tap,buttons[2].rx.tap,buttons[3].rx.tap).merge() observable.subscribe(onNext: { print("I want to find which button is tapped.") }).disposed(by: disposeBag)解决方法 正确的答案是不首先合并按钮.如果你想做四件不同的事情,那就有四个不同的可观察者.如果他们都做同样的事情,只需使用不同的数据,那么: let taps = buttons.enumerated().map { (let Tags = buttons .map { (.rx.tap,.tag) } .map { obs,tag in obs.map { tag } }let values = Observable.merge(Tags).0,.1.rx.tap) }let toInts = taps.map { index,obs in obs.map { index } }let mergedTaps = Observable.merge(toInts) 经过审核,我真的很喜欢@Sooraj_snr已经删除的答案.使用按钮的标签而不是它们在阵列中的位置.它更强大.
总结以上是内存溢出为你收集整理的ios – 如何在RxSwift中单击哪个按钮全部内容,希望文章能够帮你解决ios – 如何在RxSwift中单击哪个按钮所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)