RxSwift
RxSwift - tap으로 addTarget을 대체해보자.
버그잡이
2020. 9. 17. 21:51
Swift에서 버튼 클릭시 동작을 설정하려면
addTarget을 통해서 함수를 연결하거나
오토레이아웃을 쓸 경우 @IBAction으로 연결할 수 있습니다.
//addTarger을 활용한 방법
printLogBtn.addTarget(self, action: #seletor(printLog()), forControlEvents: .TouchUpInside)
@objc func printLog() {
print("clicked!")
}
//IBAction을 활용한 방법
@IBAction func printLog(btn: UIButton) {
println("clicked!")
}
RxSwift를 통해서도 UIEvent를 받을 수 있습니다.
let disposeBag = DisposeBag()
button.rx.tap
.bind {
print("clicked")
}
.disposed(by: disposeBag)
button에 tap 이벤트가 발생할 때마다 bind 블록이 실행됩니다.
사실 코드량을 크게 줄여주는 부분은 아니라서 rx를 굳이 사용할 필요는 없지만
그래도 보다 깔끔한 코드를 짜고 싶다면 한번 사용해보는 것도 좋을 것 같습니다.
반응형