diff --git a/RxCocoa/iOS/UIControl+Rx.swift b/RxCocoa/iOS/UIControl+Rx.swift index 27e568ad..9f79d12a 100644 --- a/RxCocoa/iOS/UIControl+Rx.swift +++ b/RxCocoa/iOS/UIControl+Rx.swift @@ -67,7 +67,7 @@ extension UIControl { return rx_controlEvent(controlEvents) } - func rx_value(getter getter: () -> T, setter: T -> Void) -> ControlProperty { + func rx_value(getter getter: () -> T, setter: T -> Void) -> ControlProperty { let source: Observable = Observable.create { [weak self] observer in guard let control = self else { observer.on(.Completed) @@ -83,7 +83,9 @@ extension UIControl { return AnonymousDisposable { controlTarget.dispose() } - }.takeUntil(rx_deallocated) + } + .distinctUntilChanged() + .takeUntil(rx_deallocated) return ControlProperty(values: source, valueSink: AnyObserver { event in MainScheduler.ensureExecutingOnScheduler()