2012-03-16 15 views
7

ho questo nella mia tabella di vista di sezione di intestazione:Come passare argomento in @selector in UITapGestureRecognizer?

UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sectionHeaderTapped:)]; 

voglio passare il numero di sezione nel metodo sectionHeaderTapped modo che io possa riconoscere quale sezione ma ho sfruttato.

mia implementazione del metodo è simile al seguente:

-(void)sectionHeaderTapped:(NSInteger)sectionValue { 
    NSLog(@"the section header is tapped ");  
} 

Come posso raggiungere questo obiettivo?

risposta

15

Il metodo sectionHeaderTapped dovrebbe avere uno dei seguenti firme:

- (void)sectionHeaderTapped:(UITapGestureRecognizer *)sender; 
- (void)sectionHeaderTapped; 

Dovete capire il cellulare che è stato sfruttato utilizzando le coordinate del rubinetto.

-(void)sectionHeaderTapped:(UITapGestureRecognizer *)gestureRecognizer 
{ 
    CGPoint tapLocation = [gestureRecognizer locationInView:self.tableView]; 
    NSIndexPath *tapIndexPath = [self.tableView indexPathForRowAtPoint:tapLocation]; 
    UITableViewCell* tappedCell = [self.tableView cellForRowAtIndexPath:tapIndexPath]; 
} 

Probabilmente è possibile ottenere l'intestazione della sezione utilizzando tale metodo. Ma potrebbe essere più facile allegare un diverso riconoscimento di gesti ad ogni intestazione di sezione.

- (UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section 
{ 
    // ... 
    UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(sectionHeaderTapped:)]; 
    [headerView addGestureRecognizer:tapGesture]; 
    return headerView; 
} 

E poi

-(void)sectionHeaderTapped:(UITapGestureRecognizer *)gestureRecognizer 
{ 
    UIView *headerView = gestureRecognizer.view; 
    // ... 
} 
+0

sì ho usato gesti diversi per ogni sezione, non il modo migliore, ma modo più semplice ... Grazie –

+0

Prefetto risposta .... grazie .. –

0

Un supplente: è possibile aggiungere UIButton su tableHeaderView e fare clic sul pulsante.

Problemi correlati