2012-10-06 3 views
0

저는 UITableView가 있고 셀에는 UITableViewCell 클래스를 사용하고 있습니다. 셀 안에는 회사 데이터를 표시하는 데 라벨을 사용하고 있습니다.제스처 인식기 선택기 메서드에 터치 된 레이블 텍스트를 전달하는 방법

내가 필요한 것은 사용자가 회사 제목을 클릭 할 때 회사 웹 사이트를 열거 나 이메일 주소를 클릭하면 사용자가 메일 앱을 열 때입니다 (단, 사용자가 셀의 다른 부분을 터치해도 아무 것도 발생하지 않아야 함) .

하나의 "작은"것을 제외하고는 모두 기술적으로 잘 동작합니다 (제스처 인식기, 사파리 및 메일 열기 등). 터치 인식기 선택기 메서드에 URL (웹 또는 전자 메일)을 전달할 수있는 방법을 알 수 없습니다.

아이디어가 있으십니까?

+1

레이블에 태그에 회사 모델의 ID (일부 배열)를 할당 한 다음 제스처 인식기 대리인에서 연관된 회사를 ID별로 배열로 찾을 수 있습니다. – NeverBe

답변

4

테이블보기에서 탭 위치를 얻을 수 있으며 위치의 indexPath를 얻을 수 있다고 생각합니다.

- (void) handleGestureRecognizer:(UIGestureRecognizer *)recognizer { 
    CGPoint tapPoint = [recognizer locationInView:self.tableView]; 
    NSIndexPath * indexPath = [self.tableView indexPathForRowAtPoint:self.tableView]; 
    // Do whatever you want with indexPath.section, indexPath.row information 
} 
1

데이터가 정적이어서 회사 제목 라벨에 보이지 않는 버튼을 넣을 수 있습니다.

그리고 액션에서 rowAtIndexPath와 같은 모든 버튼에 태그를 지정하십시오.

여기 int tag = button.tag; 당신이 다음 배열에 귀하의 웹 사이트 링크를 얻는 경우

이제 :

버튼 액션에서

당신은이 ... 이것은 나를 위해 작동 시도 할 수 있습니다

NSString *urlString=[websteArray objectAtIndex:tag]; 
        OR 
NSString *urlString=[NSString stringWithFormat:@"http://%@",[websteArray objectAtIndex:indexPath.row]]; 

NSLog(@"the strurl is %@",urlString); 



[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]]; 
4
- (void)tapAction:(UITapGestureRecognizer *)tap { 
UILabel *currentLabel = (UILabel *) tap.view; 
NSString *labelText= currentLabel.text; 
    } 

로 링크를 가져! !

관련 문제