버그 잡이

RxSwift - tap으로 addTarget을 대체해보자. 본문

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를 굳이 사용할 필요는 없지만

그래도 보다 깔끔한 코드를 짜고 싶다면 한번 사용해보는 것도 좋을 것 같습니다.

반응형
Comments