gpt4 book ai didi

ios - 使 UIButton 的 Observable isHighlighted 属性

转载 作者:搜寻专家 更新时间:2023-11-01 06:30:08 26 4
gpt4 key购买 nike

我正在尝试为我的 UIButton 创建 isHighlighted Observable,以便在每次 isHiglighted 为 UIButton 更改时发送序列。我写过这样的东西

extension Reactive where Base: UIButton {

var isHighlighted: Observable<Bool> {

let property = self.base.rx.controlProperty(editingEvents: .allTouchEvents,
getter: { _ in self.base.isHighlighted },
setter: { (_, _) in })
return property
.distinctUntilChanged()
.asObservable()
}
}

问题是,它不适用于 .touchUpInside。如果我将手指拖到 UIButton 之外然后返回,它工作正常,但不适用于点击操作。我认为在 .touchUpInside 之后它仍然会在很短的时间内突出显示。

最佳答案

谢谢@iWheelBuy 我创建了可以运行的代码,没有 RxOptional,我部分地基于您的回答所以谢谢!这是工作代码:

extension Reactive where Base: UIButton {
var isHighlighted: Observable<Bool> {
let anyObservable = self.base.rx.methodInvoked(#selector(setter: self.base.isHighlighted))

let boolObservable = anyObservable
.flatMap { Observable.from(optional: $0.first as? Bool) }
.startWith(self.base.isHighlighted)
.distinctUntilChanged()
.share()

return boolObservable
}
}

关于ios - 使 UIButton 的 Observable isHighlighted 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48591669/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com