라벨이 UIView인 게시물 표시

[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

[iOS]UIView 를 활용한 Animation

iOS 에서 애니메이션 을 줄때 사용한다. 다른 옵션들이 있지만 이것만 해도 충분할 꺼 같다. 다른 옵션들은 매뉴얼을 찾아보면 있다. 일단 Duration 1.5는 1.5초 동안 애니메이션 한다. animations 에 설정된 값으로 애니메이션 한다는 뜻이다. completion 은 마무리할 때 이렇게 한다는 뜻이다. [ UIView animateWithDuration : 1.5f                      animations :^{                          // O, X 표시                          self . viewAnswer . alpha = 1.0f ;                          self . viewAnswer . hidden = NO ;                          // 점수판 흐리게                          self . viewTestBoard . alpha = 0.5f ;                          self . labelTest1 . alpha = 0.3f ;                          self . labelTest2 . alpha = 0.3f ;                      }                      completion :^( BOOL finished){                          // O, X 감추기                          self . viewAnswer . alpha = 0.0f ;                          self . viewAnswer . hidden = YES ;                          // 점수판 보이기                          self . viewTestBoard . alpha = 1