iOS/RxSwift
[RxSwift] ActivityIndicatorView를 Rx로 쉽게 컨트롤하기
최지철
2024. 6. 8. 11:19
반응형
- 인디케이터뷰의 상태를 변경하기 위해서는 코드를 추가해주어야 합니다.
- 그래서! 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)
반응형