2013-03-16 2 views
0

У меня есть UILabel в UITableViewCell, который отображает номер телефона. Когда я нажимаю на него, я могу позвонить на этот номер. Таким образом, чтобы сделать его кликабельным, я добавил в него UITapGestureRecognizer. Но я не мог понять, как ссылаться на тот щелчок, который я нажимаю, я имею в виду, какой номер был нажат.UITapgestureRecogniser в таблицеViewCell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    lblphone = [[UILabel alloc] initWithFrame:CGSizeMake(20,30,50,100)]; 
    lblphone.tag = 116; 
    lblphone.backgroundColor = [UIColor clearColor]; 
    lblphone.text=[NSString stringwithFormat:@"%@",phone]; 
    [lblphone setFont:[UIFont fontWithName:@"Helvetica" size:12]]; 
    [lblphone setLineBreakMode:UILineBreakModeWordWrap]; 
    [lblphone setUserInteractionEnabled:YES]; 

    UITapGestureRecognizer *tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(labelButton:)]; 
    [tapGestureRecognizer setNumberOfTapsRequired:1]; 
    [lblphone addGestureRecognizer:tapGestureRecognizer]; 
    [tapGestureRecognizer release]; 
    [cell addSubview:lblphone]; 
} 

-(IBAction)labelButton:(UITapGestureRecognizer*)tapGestureRecognizer 
{ 
    NSIndexPath *indexPath; 
    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath]; 
    UILabel *phoneno = (UILabel*)[cell viewWithTag:116]; 
    NSString *phoneNumber = [@"telprompt://" stringByAppendingString:phoneno.text]; 
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:phoneNumber]]; 
} 

Но каждый раз, когда я мог видеть PHONENUMBER последней ячейки в NSString *phoneNumber;

Как я могу обратиться к какому ярлыку нажата в UITapGestureRecognizer?

+0

почему вы используете "' UILabel'" вместо "'UIButton'" ?? –

+0

Я попробовал это для UILabel ... – Honey

+0

попробуйте этот UILabel * phoneno = (UILabel *) [cell viewWithTag: [tapGestureRecognizer.view.tag]]; –

ответ

1

Использование lblphone.tag = indexPath.row + 1; вместо lblphone.tag = 116; в cellForRowAtIndexPath

Кроме того, вы можете добиться этого без использования меток.

пример ниже

-(void)labelButton:(UITapGestureRecognizer*)tapGestureRecognizer 
{ 
    UILabel *phoneno = (UILabel *) tapGestureRecognizer.view; 
} 
+0

Я следил за вторым способом, потому что он легко заменяется моим кодом. Получите его. – Honey

 Смежные вопросы

  • Нет связанных вопросов^_^