7월, 2015의 게시물 표시

[Swift] Custom UIView의 UIButton Event를 상위 뷰인 UIViewController 에 전달하기

UIView를 필요에 따라 생성하여 사용한다. 예를 들어 UIView 하위에 UIButton 을 추가하여 사용할 때 UIButton 의 이벤트를 상위 뷰인 UIViewController 에서 사용할 경우가 생긴다. 이경우 어떻게 해야 할까? 이때 사용하는 방법이 Protocol 이다. 일단 Custom UIView에 Protocl 을 추가한다. protocol ShiftViewDelegate {     // 부모 뷰로 데이터 전달을 위한 델리게이트 메소드     func dayTouchEvent(touchButton: UIButton ) } 이제 UIView 클래스에 델리게이트 변수를 추가한다. class ShiftView: UIView {     // 부모 뷰로 데이터 전달을 위한 델리게이트     var delegate: ShiftViewDelegate ? 버튼 이미지에 메소드에 델리게이트 추가한다 func ButtonTouch(button: UIButton ) {         // 버튼 크기를 키움         button. transform = CGAffineTransformMakeScale ( 1.5 , 1.5 )         // 버튼 크기 원상복구         UIView . animateWithDuration ( 0.8 ) {             button. transform = CGAffineTransformMakeScale ( 1.0 , 1.0 )         }         // 부모 뷰로 데이터 전달         delegate ?. dayTouchEvent (button)     } 이제 UIViewController 에 델리게이트를 추가한다. class ViewController: UIViewController , ShiftViewDel