'UIActionSheetDelegate'에 해당되는 글 2건

  1. 2013.06.07 iOS개발하기 #52. UIGestureRecognizer (44)
  2. 2012.04.21 iOS개발하기 #25. 액션시트 (UIActionSheet) (17)

오늘의 주제

1. UIGestureRecognizer 사용해 보기


쉰 두번째 시간입니다.^^

정말 오래간만의 포스팅입니다 :)

오늘은 '새벽다섯시반'님의 요청으로 포스팅을 진행해 보도록 하겠습니다.

길게 눌렀을 때 특정 동작을 할 수 있도록 구현해보고 싶다고 말씀하셨습니다.

그녀석은 바로 Gesture Rcognizer!!

그럼 알아볼까요?

스따뚜~~~~~~~~~~~~



# Gesture Recognizer란?

말 그대로 유저의 제스쳐를 인식하는 녀석입니다.

양쪽위아래로 밀기(swipe), 꾹 누르기(long press), 탭하기(tap, 여러번도 포함) 등등 많은 제스쳐를 인식할 수 있지요.

자, 그럼 그녀석을 어떻게 사용하느냐?

따라오세요~


일단 프로젝트를 만들어야겠죠?ㅎ
 


네, 만듭니다. 옵션 체크된거 확인해 주시구요~


스토리보드로 와서 View 위에 ImageView를 하나 얹어주시구요. 사진은 넣고싶은거 넣으세요 ㅎㅎ

그리고 Object Library에서 Long Press Gesture Recognizer를 끌어다가 이미지뷰 위에서 올려놓습니다.

참, 이미지뷰의 속성에서 User Interactive Enable에 꼭 체크해 주시구요 :)



좌측에 생성된 Long Press Gesture Recognizer를 우클릭 또는 control + 클릭하여 Image View와 연결되어있는지 확인합니다.

 


그리고 우클릭 또는 control + 클릭으로 View Controller로 쭈욱 드래그 하신 후에 까만 창이 뜨면 delegate로 설정해 줍니다.

자, 스토리보드에서 준비는 끝났습니다.
 


이제 헤더로 와서 UIGestureRecognizerDelegate 프로토콜을 따르겠다고 이야기 해줍니다.


그리고 그녀석을 어떻게 써야할지 알아보기 위하여 도큐먼트를 한 번 훑어봐야겠죠?

UIGestureRecognizerDelegate위로 option(alt)키를 누른 상태로 커서를 올려봅니다.

그럼 위처럼 말풍선이 뜰텐데요, Reference를 클릭합니다.
 


자, 여기서 보면 델리게이트가 하는 일이 나와있네요.

우리에게 필요한 것은 꾸욱 눌렀을 때 어떻게 해줘야 할지를 정해주는 것이기 때문에 - gestureRecognizerShouldBegin: 을 클릭해서 자세한 내용을 봅시다.


요로코롬 어떤 녀석인지 상세하게 설명이 되어있네요 :)

한 번 쭈욱 읽어보시구요, 델리게이트 메소드 구현을 위해서 저녀석을 쭉 긁어서 복사해옵니다.

어디로? 구현파일로요 ㅋㅋ


참, 우리는 액션시트도 쓰려고 하니까 일단 우선 헤더파일에 액션시트 델리게이트를 하겠다고 이야기 해주구요,


아까 복사해둔 메소드를 이용해서 이렇게 구현해줍니다. 

그리고 실행!!!



 

짜잔~ 
잘 되시나요?
참 쉬죠잉~?

ㅋㅋ 여기에서는 Long Press Gesture Recognizer만 실습해 보았는데요,

다른 Gesture Recognizer들도 사용법은 비슷비슷 합니다.

다른 녀석으로 한 번 구현해 보세요.

참, 종류가 달라도 다들 UIGestureRecognizerDelegate 프로토콜을 따르게 됩니다.

즉, 위에서 본 델리게이트 메소드들을 적절히 잘 활용하면 여러 제스쳐를 한 번에 받고 처리할 수 있다는 이야기가 되겠지요?ㅎ

한 번 무슨말인지 고민해 보세요 :)

오랜만의 포스팅이었습니다.

많이 부족하고 허접한 블로그인데 이렇게 찾아주셔서 정말 고맙습니다 ^^

또 새로운 주제가 생기면 포스팅 하겠습니다.

그럼 다음에 뵈어요 :)

by yagom

facebook : http://www.facebook.com/yagomSoft

twitter : http://twitter.yagom.net ( @yagomsoft )

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 손가락 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 고맙습니다~ ↓↓↓ 




Posted by yagom

오늘의 주제

1. UIActionSheet
2. UIActionSheetDelegate 



벌써 스물 다섯 번째 시간입니다.^^

애니메이션은 흥미로우셨나요?ㅎ
이제 슬슬 뭔가 흥미가 오시는지, 아니면 아직도 뭐가 뭔지 잘 모르시는지..ㅋㅋㅋ
피드백이 없네요+_+
이런이런 점이 부족하다 말씀해 주시면 좀 더 발전이 있을 것 같은데..^^;

자 그럼 서론은 이만 마치고 새로운 주제로 넘어가 봅시다~
이번 주제는 UIActionSheet 입니다!

액션 시트가 뭐냐구요? 이제 알게 되겠죠?ㅎ

★ 이번 포스팅은 Potomac님의 요청으로 진행해보았습니다 ^^*
사실 이거 해봐야지 하다가 마침 Potomac님께서 요청해 주셔서 이제야 합니다 ㅎ 고맙습니다~!

# UIActionSheet

UIActionSheet는 사용자의 응답을 받기 위한 하나의 방법입니다.
이제 시작해 보도록 합시다.

자, 이제까지 그래왔던 것처럼 계속 프로젝트 사용합니다~ 절대 귀찮아서 그런거 아녜요~
나중에 이 프로젝트 하나만 보면 아~ 아~ 생각날 수 있잖아요?ㅎㅎ

자, MyAnimationViewController에서 만들어 주었던 움직이는 버튼녀석의 크기를 좀 키워줘 봅시다~ 저는 100*100으로 변경했습니다.


그리고 버튼에 액션을 연결해 줍니다. imageButtonclick이라는 메소드로 연결해 주었습니다.


이렇게 연결이 되었죠? 그리고 우리는 액션시트를 사용하면서 델리게이트도 사용해야 해요~ 왜 그런지는 밑에서 설명해 드릴게요 ㅎ
우선 나 액션시트의 델리게이트가 되겠다! 라고 말해줍니다.


자, 그리고 이제 버튼을 눌렀을 때 동작할 것을 코딩해 줍니다.
설명은 주석으로 달아놨으니 참고하세요^^*


이렇게 코딩하고 실행하면 요로코롬 나옵니다.
이것은 시뮬레이터에서 실행 했을 때의 화면이구요


이 화면은 실제 기기에서 실행 했을 때의 화면입니다.


destructive button과 other button 의 차이 보이시나요?
또한 위에 조건에서 사진이 없는 디바이스에서는 사진찍기 버튼이 나오지 않게 처리가 되었기 때문에 시뮬레이터와 아이폰에서 이렇게 차이가 나게 됩니다.

버튼을 눌러봅시다~ 뭔가 반응이 있나요?ㅎㅎ 없죠~ 없어요~

자, 그러면 우리가 액션시트 델리게이트를 사용해야 할 이유를 여기에서 찾아봅시다.
액션시트 자체는 "얼굴마담" 입니다.
즉, 액션시트는 화면에 보여주기만 하고, 유저가 응답을 하였을 때, 적절히 처리해줄 녀석이 필요한 것입니다. 그녀석이 물론 델리게이트겠지요?
아래 그림을 참고하시면 조금 더 이해가 되실지 모르겠습니다^^...


자, 그럼 이제 액션시트 델리게이트 레퍼런스로 가볼까요?
액션에 응답하기 목록에 메소드가 하나 있네요. 유저가 액션을 취했으니 그에 맞는 응답을 주어야 겠지요~
클릭해 봅시다.


'유저가 액션시트의 버튼을 클릭했을 때, 델리게이트에게 전송한다' 라고 설명이 되어있네요.
일단 메소드를 복사합니다 ㅎ


자, 우리는 아까 액션시트를 만들어 줄때, MyAnimationViewController를 델리게이트로 지정했으니 MyAnimationViewController의 구현파일로 옵니다.
거기서 적절하게 델리게이트를 구현해 봅니다.


이렇게 델리게이트 메소드를 만들어 주고, 원하는 기능을 추가하면 됩니다.

이제 어떤 기능을 넣을 거냐구요?

그건 다음 시간에...!ㅋㅋㅋ

I'll be back!

by yagom

twitter : @yagomsoft

p.s 제 포스팅을 RSS 피드로 받아보실 수 있습니다.

RSS Feed 받기   


↓↓↓저 열심히 썼는데 추천 한방 꾹 눌러주고 가시는 건 어떨까요? 로그인이 필요 없습니다. ^~^ 사랑합니다~ ↓↓↓ 

Posted by yagom