UIControll 클래스안에 있는 인스턴스 메서드이다. 주로 UIButton, UITextField 와 같이 사용자가 직접 Control 할 수 있는 객체에 접근하여 특정 이벤트가 발생할 때 마다 내가 작성한 메서드를 동작하도록 만들 수 있는 메서드

func addTarget(_ target: Any?, 
								action: Selector, 
								for controlEvents: UIControl.Event)

target

내가 설정한 action 메서드가 호출되는 객체를 설정하는 파라미터다. 즉, action파라미터에 설정한 메서드가 호출되는 개체라고 생각하면 된다. addTarget을 정의하면 UIControl를 갖고 있는 상위 View를 특정하기 때문에, 보통의 경우는 self로 둔다.

action

#selector()를 이용하여 ControlEvents의 설정한 이벤트가 발생할 때마다 동작하는 메서드를 선택해주어야 하는 파라미터이다.

controlEvents

어떤 이벤트가 발생할 때 마다 선택한 메서드를 실행시킬 것인지 지정해주는 파라미터다. 이 파라미터는 UIControl.Event라는 상수 목록들을 지정하고 있다. 다양한 이벤트들은 여기서 확인할 수 있다.

UIButton에 대한 evnet 처리

  1. RxSwift 의 subscribe 사용
  2. @objc function 생성 후 addTarget으로 연결

이 두가지 방법을 많이 사용한다.

[iOS] addTarget, @objc, #selector