반응형
- 인디케이터뷰의 상태를 변경하기 위해서는 코드를 추가해주어야 합니다.
- 그래서! startAnimating() 과 stopAnimating() 메소드 호출을 자동화함으로써, 반복적인 코드를 줄여줍니다.
- isAnimating 바인더를 통해 UIActivityIndicatorView의 상태도 반응형으로 관리할 수 있게 되므로, Rx를 좀 더 리엑티브하게 활용해보았습니다. ㅎ.ㅎ
import RxSwift
import RxCocoa
extension Reactive where Base: UIActivityIndicatorView {
public var isAnimating: Binder<Bool> { /// Rx로 ActivityIndicatorView의 Animate를 조금 더 간편하게 제어하기 위한 Extension입니다.
return Binder(self.base) { activityIndicator, isActive in
if isActive {
activityIndicator.startAnimating()
} else {
activityIndicator.stopAnimating()
}
}
}
}
Extension을 활용하여, Bool을 통해 애니메이션을 간단히 조절 할 수 있게 하였습니다.
아래는, 사용 예시입니다.
output.indicatorVisible
.drive(activityIndicator.rx.isAnimating)
.disposed(by: disposeBag)
반응형
'iOS > RxSwift' 카테고리의 다른 글
[RxSwift] Map, FlatMap (Combining Operators ) (0) | 2024.06.17 |
---|---|
[RxSwift] Rx를 이용한 백그라운드 감지 (0) | 2024.06.14 |
[RxSwift] RxCocoa (binding, Traits, Driver..등) (0) | 2023.11.04 |
[RxSwift] Erro 처리 catch, retry 연산자 (0) | 2023.10.31 |
[RxSwift] Create Operators [2] (0) | 2023.10.30 |