2012-02-09 3 views
3

UITapGestureRecognizer 처리기에서 셀을 도청하기 :내 iOS5를 응용 프로그램 내 테이블 셀에 대한 제스처 인식기를 설정 한

UITapGestureRecognizer* oneFingerDoubleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(cellOneFingerDoubleTap:)]; 
oneFingerDoubleTap.numberOfTapsRequired = 2; 
[cell addGestureRecognizer:oneFingerDoubleTap]; 

그리고 구현 핸들러 방법 : 그것은 잘 작동

- (void)cellOneFingerDoubleTap:(id) sender 
{ 
    NSLog(@"taptap"); 
} 

. 내 문제는 셀을 탭한 셀이나 다른 셀의 데이터를 전달할 수 없다는 것입니다. 내가 보았 듯이 (id) 보낸 사람은 UITapGestureRecognizer 그 자체입니다.

제 질문은 : 어떻게 처리기 메서드 (cellOneFingerDoubleTap)에서 탭 셀을 가져올 수 있습니까? 핸들러 메소드에서 탭된 셀의 인덱스를 가져올 수 있습니까?

감사합니다.

답변

9

cellOneFingerDoubleTap: 메서드에서 전달 된 제스처 인식기에서 view을 가져 오는 경우 탭 한 셀을 가져옵니다. 뭔가 같은 :

- (void)cellOneFingerDoubleTap:(UIGestureRecognizer*)recognizer { 
    UITableViewCell *cell = (UITableViewCell*)recognizer.view; 
} 

+0

대단히 감사합니다. – Tom

0

UIGestureRecognizer는 당신이 얻을하는 데 사용할 수있는

-(UIView *)view 

속성이 있습니다 [난 그냥 "세포"가 있으리라 믿고있어 당신이 방법에 의해 UITableViewCell을 의미] 그것이 붙어 있던 견해.

인식기를 UITableViewCell에 연결 했으므로 인식기의보기를 UITableView 's에 전달합니다.

-indexPathForCell: