mirror of
https://github.com/ReactiveX/RxSwift.git
synced 2024-10-05 06:27:29 +03:00
bd6a0b666d
(cherry picked from commit 0bab5e2545
)
39 lines
895 B
Swift
39 lines
895 B
Swift
//
|
||
// UISwitch+Rx.swift
|
||
// RxCocoa
|
||
//
|
||
// Created by Carlos García on 8/7/15.
|
||
// Copyright © 2015 Krunoslav Zaher. All rights reserved.
|
||
//
|
||
|
||
#if os(iOS)
|
||
|
||
import UIKit
|
||
import RxSwift
|
||
|
||
extension Reactive where Base: UISwitch {
|
||
|
||
/// Reactive wrapper for `isOn` property.
|
||
public var isOn: ControlProperty<Bool> {
|
||
value
|
||
}
|
||
|
||
/// Reactive wrapper for `isOn` property.
|
||
///
|
||
/// ⚠️ Versions prior to iOS 10.2 were leaking `UISwitch`'s, so on those versions
|
||
/// underlying observable sequence won't complete when nothing holds a strong reference
|
||
/// to `UISwitch`.
|
||
public var value: ControlProperty<Bool> {
|
||
return base.rx.controlPropertyWithDefaultEvents(
|
||
getter: { uiSwitch in
|
||
uiSwitch.isOn
|
||
}, setter: { uiSwitch, value in
|
||
uiSwitch.isOn = value
|
||
}
|
||
)
|
||
}
|
||
|
||
}
|
||
|
||
#endif
|