오늘의 주제

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. 이전 댓글 더보기
  2. east0822 2013.06.10 17:29  댓글주소  수정/삭제  댓글쓰기

    돌아 오셨네요!! 앞으로도 좋은 포스팅 기대하겠습니다.

  3. 모르세 2013.06.15 11:30  댓글주소  수정/삭제  댓글쓰기

    오랜만에 쉬었다 갑니다.

  4. simons9989 2013.06.15 12:55  댓글주소  수정/삭제  댓글쓰기

    포스팅 정말 잘 보고 있습니다~!!!
    yagome님 정말 쌩뚱맞지만 질문하나만 하겠습니다ㅠㅠ

    제가 현재 특정 뷰 컨트롤러에 버튼 4개와 VIEW 하나를 배치하고

    각각의 버튼을 누를 때마다 다른 뷰 컨트롤러를 호출해서 저 VIEW에다가 뿌려주고 싶은데

    뷰 컨트롤러의 view는 잘 가져오는데 거기에 있는 OUTLET의 IBACTION은 하나도 실행되지 않더군요...

    즉, 한 화면에 여러개의 뷰 컨트롤러를 스위칭해서 보여주고 싶은데...

    가능할까요??가능하다면 팁좀 부탁드릴게요ㅠㅠ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.15 17:14 신고  댓글주소  수정/삭제

      한 화면에 여러개의 뷰컨트롤러의 뷰를 스위칭 한다...
      그다지 좋은 방법은 아니지만, 가능하긴 합니다.
      이걸 어떻게 팁을 드려야 할까요;;
      http://blog.yagom.net/135
      참고해 보시고 궁금하신 점 다시 한 번 알려주세요 :)

  5. yagom님 네이버 맥부기 카페에서 강좌 잘 보고있습니다~~^^ 2013.06.15 16:13  댓글주소  수정/삭제  댓글쓰기

    티스토리는 어떻게 가입하는건지;;몰라서
    이렇게 글을 남겨요~~
    야곰님 연재강좌 정말 잘 보고있구요 많이 배우고 있습니다
    사실 너무 초보라서 이해가 잘 가지는 않지만
    따라하다고 연습하면 길이 보이겠죠;;
    궁금한 점이 있어서 네이버 쪽지를 보냈는데
    혹시 시간나시면 한 번 봐주실 수 있을까요?
    궁금 한 것이야 한둘이 아니지만~
    강좌내용중에 궁금한 것이 있어서 여쭤봅니다~~

  6. yagom님 네이버 맥부기 카페에서 강좌 잘 보고있습니다~~^^ 2013.06.15 17:49  댓글주소  수정/삭제  댓글쓰기

    감사합니다~~^^
    이제는 야곰님 블로그에 와서 질문 좀 남길께요~
    바쁘실텐데 ㅠ 죄송합니다

  7. fwith 2013.06.16 20:19  댓글주소  수정/삭제  댓글쓰기

    아이폰 개발하는데에 야곰님 블로그에서 이해되지 않은 부분들을 많이 배워가고 있습니다. 나중에 시간이 되시면 부탁드릴게 하나 있는데 코어데이터에 대해서 포스팅 해주시면 안될까요? 전반적인 기능들을 쉽게 써주시면 정말 도움 될 것 같습니다. 감사합니다.

  8. simons9989 2013.06.17 23:13  댓글주소  수정/삭제  댓글쓰기

    야곰님 다시한번만 질문 드릴게요ㅠㅠ
    음...제가 질문을 잘 못했던거 같은데... 죄송하지만 다시 한번만 질문 드릴게요~!!ㅜㅜ
    ViewController1, ViewController2를 구현한 상태에서
    ViewController3을 만들고 있습니다.
    이 때 ViewController3에 버튼 두개를 배치했고 각각의 버튼을 누를때마다
    ViewController1와 ViewController2를 호출해오고 싶다는 얘기였습니다.
    그런데 이 때 아예 화면 자체가 바뀌는건 아니고 제가 View로 설정한 영역에 ViewController1 또는 2가 호출되는 것입니다.
    즉, 한 화면에 두개의 뷰컨트롤러가 독립적으로 실행되고 있다고 해야하나요??ㅠㅠ
    말 주변이 없어서 설명을 잘 못하겠네요ㅠㅠ
    |------------------------------------|
    | 버튼1, 버튼2 |
    | |
    | |-------------뷰-----------| |
    | | 버튼을 | |
    | | 누르면 | |
    | | viewController1 | |
    | | 또는 | |
    | | viewController2 | |
    | | 호출 | |
    | | | |
    | |---------------------------| |
    | |
    |------------------------------------|
    대충 그림으로 표현하자면 이런 모양인데...허접하네요~_~ㅎㅎ귀엽게 봐주시길...ㅎㅎ
    근데 저게 사실 가능한구조인지도 모르겠지만...
    저게 가능한구조인지 가능하다면 어떻게 구현해야 할지를 질문드리고싶네요~
    귀찮으시겠지만 잘 좀 부탁드립니다 굽신( _ _)
    PS. 아 그리고 네이버로 쪽지 보내려고 하는데 아이디좀 알려주실수 있으세요??제 아이디는 simons9989@naver.com입니당~!

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.18 09:30 신고  댓글주소  수정/삭제

      네, 제가 말씀드렸듯이 addSubview를 하시면 됩니다...^^;

      3번컨트롤러에서 1번컨트롤러와 2번컨드롤러 import 해 주시고

      화면에 각 컨트롤러들의 객체를 만들어서 해당 view를 addSubview 해주시면 됩니다.

      막상 해보면 간단한데 말로 설명하기가 참 애매합니다...^^;

      아니면 IB나 스토리보드를 사용하셔도 됩니다..

      방법도 다양하고 어렵지 않은 방법인데...

      간단하게 뷰컨트롤러 3에..

      #import "ViewController1.h"
      #import "ViewController2.h"

      해주시고

      ViewController3의 viewDidLoad에

      ViewController1 *viewCon1 = [[ViewController1 alloc] init];
      ViewController2 *viewCon2 = [[ViewController2 alloc] init];

      [[viewCon1 view] setFrame:CGRectMake(0.0f, 0.0f, 100.0f, 100.0f)];
      [[viewCon2 view] setFrame:CGRectMake(0.0f, 100.0f, 100.0f, 100.0f)];

      [[self view] addSubview:[viewCon1 view]];
      [[self view] addSubview:[viewCon2 view]];

      이렇게 해보셔요.

      참, 그리고 제가 네이버 쪽지는 거의 들어가보지 않아서 블로그에 질문 남겨주시면 되겠습니다..^^

      장마가 시작되었네요, 행복한 일주일 되시길..!

  9. simons9989 2013.06.18 14:47  댓글주소  수정/삭제  댓글쓰기

    우아우아~친절한 답변정말 감사합니당@_@ㅠㅠㅠㅠㅠ

    근데 해보니깐 저렇게 했을 때 viewCon1,viewCon2의 view는 addSubview로 가져와 지는데

    그 view안에 있는 버튼에 IBAction을 설정해놨는데

    단순히 view만 가져와지고 걔네들은 작동이 안되더라구요...

    물론 해당 IBAction은 ViewController1,2에다가 코딩해놓았지요~_~;;ㅎ

    그래서 혹시 이것도 뭔가 제가 작업을 해줘야하나요??ㅠㅠ

    답답하고 궁금합니다ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ

    부빌데가 야곰님밖에 없어서 자꾸 귀찮게 질문드려서 죄송합니다 또 감사하구요~!

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.18 20:29 신고  댓글주소  수정/삭제

      액션이 잘 연결이 되어있다면 동작해야 정상일텐데요...^^;
      어떤 코드를 넣으셨는데 작동을 안하시는지...
      단순히 로그라도 찍어보세요 ㅎ
      아니면 메모리에서 컨트롤러 객체가 해제되어서 그럴수도 있을 것 같습니다.
      ViewController3에서
      ViewControll1과 ViewController2 를 strong property로 선언해서 해보세요~
      물론 선언만 하면 안되고 viewDidLoad에서
      self.viewCon1 = [[ViewController1 alloc] init];

      해서 진행해보세요 ㅎ

  10. simons9989 2013.06.18 22:11  댓글주소  수정/삭제  댓글쓰기

    악~!!되는군요ㅠㅠ
    제가 뭔가 실수 했나보네요ㅠㅠ
    이 문제로 한 3주 고생한거 같은데...
    정말정말 감사합니닷~!!!
    앞으로 포스팅 잘보고 귀찮게 폭풍질문 하겠슴다!!+_+
    그럼 즐거운 한주되세요~^_^

  11. simons9989 2013.06.19 00:46  댓글주소  수정/삭제  댓글쓰기

    악~!!!야곰님ㅠㅠㅠㅠㅠㅠㅠㅠ
    정말 죄송한데 질문 딱 한개만 더할게요~!!!
    위에 질문했던 내용중에 viewController3에서 viewController1,2를 호출하잖아요~
    이 때 viewController1에 있는 버튼이, viewController3에서 불려졌는지 viewController1에서 불려 졌는지 알 수 있는 방법이 있을까요??
    sender를 이용하면 어찌어찌 가능할 것 같기도 한데..ㅠㅠ
    그리고 viewController1에 원래 버튼 IBAction함수가 있긴 하지만
    viewController3에서 다시 구현할 수는 없을까요?!?!
    알려주세요~!!

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.19 23:36 신고  댓글주소  수정/삭제

      음...
      상황에 따라서 여러가지 방법이 있을 것 같습니다만...
      [[[self view] superview] superview] 하면 나오는 값이 다를 것 같습니다.. (확인 안해서봐서 장담 못하겠어요^^; )

      그리고 ViewController3에서 원하는 IBAction 메소드를 구현한 후 (예를 들어 buttonClicked: 라는 메소드)
      ViewController3에서

      [[[self viewCon1] aButton] removeTarget:nil
      action:NULL
      forControlEvents:UIControlEventAllEvents];

      [[[self viewCon1] aButton] addTarget:self action:@selector(buttonClicked: ) forControlEvents:UIControlEventTouchUpInside];

      이런식으로 넣어주시면 되겠습니다... 'ㅁ'

  12. 퐝칭칭 2013.06.26 10:21  댓글주소  수정/삭제  댓글쓰기

    와 야곰님 진짜 오랜만에 글올리셨네요 ㅎ
    12년 이후엔 활동 안하시는줄 알고 ;;ㅋ
    가끔 필요한 내용 있을땐 종종 들어와서 도움받아가곤 했답니다. ㅎ
    감사~ ㅎ

    참 저 지금 하던거 궁금한게 있는데 하나 여쭤볼께요
    페이지슬라이딩 과 스와이프 기능
    (그러니까 음....;; 좌우 슬라이드로 페이지가 슬라이딩되고
    좌측상단에 버튼을 누르면 페이스북처럼 페이지가 밀리면서 메뉴 뷰가 끌려나와지는 모습....^^;;) )

    여기서 메뉴버튼 활성화/비활성화 할떄,, 활성화는 버튼으로만 되고 , 비활성화는 버튼과 우측에서 좌측으로 스와이프 해서 되도록 하려고 하는데 ,

    [_pagingScrollView setScrollEnabled:YES];

    이 메소드를 사용하서 활성비활성을 했거든요. 근데 이게 페이지가 구현되어있는 파일에서만 실행되는거 같은데 ..
    스와이프 또는 버튼으로 비활성을 시켰을떄 ! 그때를 알려주는 메소드가 있나 해서요 ....
    (돌아와서 현재 보고 있는 페이지로 돌아왔다! 그때 실행시켜라.! 할수 있는 메소드)

    글이 좀 길고 정신없어 보여서 죄송하지만 혹시라도 야곰님이라면 아실까 해서 주절주절 도움을 청해봅니다 ^^;;;;;
    즐거운 하루 되세요 ㅎ


    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.06.26 13:12 신고  댓글주소  수정/삭제

      안녕하세요!!

      음... 글쎄요^^;

      페이지가 다시 원래대로 돌아올때의 메소드에 넣어주시는게 좋지 않을까요?

      제가 어떤 구조로 어떤 소스로 짜여져 있는지 모르기때문에 정확히 말씀드리기가 어렵지만...

      제스쳐 인식하는 델리게이트 때에 넣어주셔도 될 것 같구요~

      아님 좌측 메뉴가 사라지는 시점에 실행시키면 될 것 같구요...^^

      맞는 답변 드렸는지 모르겠네요ㅠ

    • 퐝칭칭 2013.07.05 11:46  댓글주소  수정/삭제

      어찌어찌 하여 되긴 됐어요 ㅋㅋ

      감사합니다 야곰님 ㅎㅎ 이상한 질문에 답변하신다고 고생하셨겠어요..;;;ㅎㅎ

      그런데 navigationController 에 대한 질문이 하나 더 생겨 버렸어요 ; (죄송)



      일반적으로 navigation 을 호출할때

      [[self navigationController] pushViewController:writeViewCtrl animated:YES];

      이런 식으로 사용하는걸로 알고 있는데

      저기서 self 대신 다른 뷰 컨트롤러를 넣고싶은데 그렇게는 원래 안되는건가요 ?

      self 가 자신의 controller 를 가리킨다고 생각 했는데 ,,,

      자신의 뷰 를 할당하고 실행 해봐도 self 나 super 가 아니라면 안되는거 같아서요.. 조언좀 부탁드리겠습니다 야곰님님 !! ^^

      예)
      현재 위치 - ViewController.m

      ViewController *viewController = [[ViewController alloc] init];
      [[viewController navigationController] pushViewController:testViewController animated:YES];

      *이런 식으로 자신의 뷰를 self 대신 해준건데도 안되네요 ㅜㅜ

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.05 13:50 신고  댓글주소  수정/삭제

      ^^ 첫 번째 문제는 잘 해결되셔서 다행입니다.

      지금 하셨던 방법은 예상한대로 되지 않는것이 맞습니다 ^^;

      새로운 인스턴스를 생성하였기 때문에 그것은 내가 아닙니다.

      ViewController *viewController = self;

      이렇게 해야하죠...

      [self navigationController]라 함은 나를 관장하고 있는 네비게이션을 뜻합니다.

      특정 뷰에는 네비게이션이 붙지 않습니다. 그 뷰를 관장하는 뷰 컨트롤러에 네비게이션이 존재하게 되지요.

      말씀하신대로 특정 뷰 컨트롤러 인스턴스의 네비게이션을 호출하려면 [viewCon navigationController]를 호출해서 가져오면 됩니다.

      하지만 위에서는 viewController가 어떤 네비게이션에도 속해있지 않으며, 방금 만들어진 새로운 인스턴스이므로 화면에 나와있지도 않습니다..^^

      잘 이해가 안되시면
      http://blog.yagom.net/20
      http://blog.yagom.net/120
      http://blog.yagom.net/123

      를 참고해 보세요 :)

  13. 2013.06.30 04:58  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  14. Favicon of https://rainybday.tistory.com BlogIcon 넛하우스 2013.07.18 10:02 신고  댓글주소  수정/삭제  댓글쓰기

    정말 많은 도움이 되었습니다. 제스처 구현 방식이 블로그 쥔장마다 조금씩 달랐는데. 야곰님껄 기본으로 하니 쉽게 되었습니다.` ^^

  15. JaneLee 2013.07.18 17:39  댓글주소  수정/삭제  댓글쓰기

    안녕하세요. 블로그 보고 많은 도움을 얻고 있습니다.
    저는 완전 초보자로서 몇달째 간단한 프로그램을 하나 만들기 위해서 국내외 사이트와 책자를 뒤지며 고생 중입니다.
    줌 인/아웃이 가능한 약도 그림파일 하나를 넣는 것인데 그게 이렇게 어려울 줄 몰랐습니다.
    벌써 샘플코드나 책을 보고 간단한 앱 몇가지는 성공해 보았는데 아무리 찾아도 줌 인/아웃에 대해 제가 알수 있는 수준으로 설명해 놓은 자료가 없어서 몇달째 고생중이예요. 기본이 없으니 정말 힘듭니다.
    다름아니고 주인장님께서 UIGesture에 대해서 너무 알기쉽게 설명을 해 주셨는데요.. 이 글에서 중간에
    "아까 복사해둔 메소드를 이용해 이렇게 구현해 줍니다"라는 부분에 들어가는 코드들이 뭔지 도무지 알 길이 없어서 실행을 해볼 수가 없네요. 이 샘플로 실행을 해보고 핀치 줌도 적용해보려는데 여기서 막혀서 계속 해결방법을 찾으려 노력하다가 정말 어렵게 주인장님께 메시지를 보내게 되었습니다. ㅠㅠ 번거로우실거라 생각해서 답변을 못들을거라고도 생각되지만 너무 다급해서요.

    제가 꼭 알고자 하는 것은요.. 말씀드린대로 약도를 줌 인/아웃 해서 확대해서 보는 앱에는 scrollview를 이용한 줌 구현이 좋은가요, 아니면 핀치제스쳐를 이용하여 이미지뷰에서 줌을 실행하는 것이 좋을까요? 일단 여기서부터 막혔거든요. ㅠㅠ 핀치제스쳐로 하는거 간신히 해외 사이트에서 샘플 찾아서 완성했는데 부드럽게 줌이 안 되고 한 손가락 고정하고 다른 손가락으로 문질러야만 줌이 되는거예요. ㅠㅠ
    그래서 또 폭풍검색을 하니 스크롤뷰에 이미지뷰를 올려서 줌을 하라고 하는 것 같아서요. 어떤 방법이 좋은가요?

    그리고 혹시 간단한 샘플 코드나 저같은 초보가 볼만한 튜터리얼이 없을까요? 진짜 제가 할수 있는 국내외 사이트 안 뒤져본 곳이 없는데요.. 여전히 꽉 막혀있습니다.

    간곡히 조언좀 부탁드릴게요~~ 만일 넘 바쁘시면 이 글 중간에 코드는 어떤게 들어가는건지만이라도(어디를 참고해야 그 코드들을 찾아낼 수 있는지만이라도) 좀 알려주시면 좋겠어요. 읽어주셔서 감사합니다~
    답변 기다리겠습니다.

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.07.19 10:46 신고  댓글주소  수정/삭제

      아... 그게 참... 그게 정말 간단한 거 같아도 꽤 쉽진 않거든요..^^;

      튜토리얼은 없고 오픈소스는 있어요...

      핀치 제스쳐로 사진 줌을 하는 데에는 조금 무리가 있을 것 같습니다 ㅠㅠ

      애플의 공식문서는 여기구요..

      http://goo.gl/041mH

      음... 오픈소스 링크도 걸어드릴게요

      http://goo.gl/FMU0I

      http://goo.gl/9oeJf

      도움이 되었으면 좋겠네요^^;

  16. JaneLee 2013.07.18 17:43  댓글주소  수정/삭제  댓글쓰기

    아참 참고로 저는 스토리보드를 사용하고 있습니다. ^^

  17. JaneLee 2013.07.19 17:23  댓글주소  수정/삭제  댓글쓰기

    답변 감사드립니다. 한번 더 연구해보고 나중에 결과 알려드릴게요~ ^^ 고맙습니다~~~~

  18. 2013.07.23 12:39  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  19. seungjae 2013.08.02 01:48  댓글주소  수정/삭제  댓글쓰기

    저는왜 캔슬버튼이 안눌리는걸까요?ㅋㅋㅋㅋㅋㅋㅋㅋ

    ios6에서 스토리보드없이 하고있는데 말이죠?

    // .m파일에서 코드를 복사했습니다.

    - (BOOL)gestureRecognizerShouldBegin:(UILongPressGestureRecognizer *) gestureRecognizer
    {
    UIActionSheet *actionSheet =[[UIActionSheet alloc]
    initWithTitle:@"Select Curation Mode"
    delegate:self
    cancelButtonTitle:@"Cancel"
    destructiveButtonTitle:@"Curation Mode 2"
    otherButtonTitles:@"Curation Mode 3", @"Curati,,", nil];
    [actionSheet showInView:self.view];
    return YES;
    }




    - (void) actionSheet:(UIActionSheet*)actionSheet didDismissWithButtonIndex:(NSInteger)buttonIndex
    {
    NSString *menuString = [actionSheet buttonTitleAtIndex:buttonIndex];

    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
    message:[NSString stringWithFormat:@"%@ is selected", menuString]
    delegate:nil
    cancelButtonTitle:@"Why..?"
    otherButtonTitles:nil];
    [alert show];
    }

  20. seungjae 2013.08.06 03:45  댓글주소  수정/삭제  댓글쓰기

    네! 다른버튼은 눌리네요.ㅋㅋㅋ

  21. 리얼왕초보 2013.08.06 21:24  댓글주소  수정/삭제  댓글쓰기

    안녕하세요 야곰님 역시나 좋은 강좌 감사합니다~
    덥고 습한데 건강 잘 챙기세용~~
    강좌 복습도 어느덧 끝나가네요
    질문 하나만 드리려구요~ 코드를 다 작성하고 실행후에 처음 제스쳐는 잘 인식을 하는데
    액션시트와 얼럿뷰까지 끝나고 두 번째 제스쳐에는 왜 아무런 반응이 없는지 궁금합니다~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.08.07 10:12 신고  댓글주소  수정/삭제

      음... 저는 잘 되었었는데, 무슨 문제일까요?ㅠㅠ
      제가 바로 위에 단 덧글처럼 showInView의 인자를 바꿔보시겠어요?

    • 리얼왕초보 2013.08.09 01:04  댓글주소  수정/삭제

      인자를 바꿔봤는데 현상은 똑같네요 ㅠ
      제가 당장은 해결하기 불가능한 수준같네용 ㅠㅠ
      더 공부해서 해결해 보겟습니다~
      항상 정성껏 답변 해주셔서~너무나 감사드립니다`~

    • Favicon of https://blog.yagom.net BlogIcon yagom 2013.08.14 09:17 신고  댓글주소  수정/삭제

      메일 보내드렸어요 :)

    • 하이앟 2013.09.29 21:18  댓글주소  수정/삭제

      저또한 같은 문제를 겪었습니다
      (BOOL)gestureRecognizerShouldBegin대신
      그냥 IBAction으로

      - (IBAction)showInfo:(UILongPressGestureRecognizer *)gestureRecognizer
      { if([gestureRecognizer state]==UIGestureRecognizerStateBegan) {
      /////////반응 내용} }

      하니까 해결되더라구요..혹시나 도움이 될까 해서 주제넘지만 올려봅니다~