2012-05-09 3 views
0

우선, Objective-C에서 시작한다고 말하고 싶습니다. MAINVIEW> MAINVIEW 내부에있는 ScrollView>있는 ScrollViewUIScrollView의 단일 터치 감지

모두 MAINVIEW와있는 ScrollView의 내부 이미지 뷰 스토리 보드에서 생성됩니다 여기

내 인텔리의 레이아웃입니다. 모든 imageView는 프로그래밍 방식으로 그리고 scrollView에서 서브 뷰로 생성됩니다.

ViewController라는 이름의 클래스가 하나뿐입니다.

여기 내 질문 : 어떻게 내 scrollView 내에서 ImageView에 대한 단일 터치를 처리 할 수 ​​있습니까? 뭔가 명확하지 않은지 알려주지.

UPDATE :

NSString *imagePath = [NSString stringWithFormat:@"%@/%@ (%i).png", path, path, nbrImage]; 
      CGRect myImageRect = CGRectMake(40, 25 + (line*lenght), 75, 75); 
      self.img = [[UIImageView alloc] initWithFrame:myImageRect]; 
      [self.img setImage:[UIImage imageNamed:imagePath]]; 

      UITapGestureRecognizer* singleTapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; 
      singleTapGestureRecognizer.numberOfTapsRequired = 1; 
      singleTapGestureRecognizer.numberOfTouchesRequired = 1;  
      singleTapGestureRecognizer.cancelsTouchesInView = NO; 
      [self.img addGestureRecognizer:singleTapGestureRecognizer]; 

      [self.scrollView addSubview:self.img]; 

- (void)handleSingleTapFrom:(UITapGestureRecognizer*)recognizer { 

    UIImageView* imageView = (id)recognizer.view; 
    NSLog(@"Test"); 
} 

편집 :

답변

1

당신은 당신이 응답 원하는대로 선택을 수행하기 위해 이미지 뷰에 UIControl을 추가 할 수 있습니다 내가 대신 handleSingleTapFrom의 쓰기 handleSingleTap을했습니다 @ 선택기에서 작동 원터치로. 다만, 취소 배경 색상, imageView.frame에 프레임을 설정하여 이미지 뷰의 서브 뷰으로 컨트롤을 추가하고 말

[myControl addtarget:self action:@selector(whateverYouWantToDo) forControlEvents:UIConntrolEventTouchUpInside]; 

편집 :

UIControl *myControl = [[UIControl alloc] initWithFrame:imageView.frame]; 
[myControl setBackgroundColor:[UIColor clearColor]]; 
[myControl addTarget:self action:@selector(doWork) forControlEvents:UIControlEventTouchUpInside]; 
[imageView addSubview:myControl]; 

후 바로 수행 할 doWork 메소드를 구현 네가하려고하는 것은 무엇이든간에. 귀하의 질문에 오해하지만 난 당신이 스크롤보기에서 이미지를 건 드리면 작업을 수행하려는 경우 이것은 내가 해냈어.

+0

내가 그 이후 touchsBegin 같은 것을 구현해야? 예를 보여줄 수 있습니까? 감사합니다 :) – Benjamin

+0

네, 내 질문을 이해합니다. 사용자가 Image1을 터치하면 mainView에 Image1이 표시됩니다. 나는 원래의 게시물을 편집했다 – Benjamin

+0

또한, 여기에 당신이하려는 것을 달성하는 튜토리얼에 대한 링크가있다. http://www.raywenderlich.com/130/how-to-write-a-custom-image-picker-like-uiimagepicker – geraldWilliam

1

UITapGestureRecognizer을 사용하십시오. 예를 들어, 핸들러의 방법으로

UITapGestureRecognizer* singleTapGestureRecognizer = [[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)] autorelease]; 
    singleTapGestureRecognizer.numberOfTapsRequired = 1; 
    singleTapGestureRecognizer.numberOfTouchesRequired = 1;  
    singleTapGestureRecognizer.cancelsTouchesInView = NO; 
    [imageView addGestureRecognizer:singleTapGestureRecognizer]; 

:

- (void)handleSingleTapFrom:(UITapGestureRecognizer*)recognizer { 

    UIImageView* imageView = (id)recognizer.view; 
    ... 
} 
+0

'[[UITapGestureRecognizer alloc] initWithTarget : 자체 액션 : @selector (handleSingleTap :)] autorelease]; ' 이 코드에서'handleSingleTape'는 무엇입니까? 구현해야하는 방법은 무엇입니까? 죄송합니다. 간단한 질문 인 경우 : – Benjamin

+0

맞습니다. 제 편집문이나 서명 참조를 확인하십시오. – sergio

+0

원본 코드를 일부 코드로 편집했습니다. – Benjamin