2016-08-12 2 views
1

Ich möchte Index erhalten, wenn Sie auf UITableView Header antippen. Jetzt habe ich UIGestureRecognizer hinzufügen, dass auf Header:Pass Index Tippen UITableViewHeader

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 

    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sectionTapped:)]; 

    UIView *headerView = [UIView new]; 
    headerView.backgroundColor = [UIColor grayColor]; 

    [headerView addGestureRecognizer:recognizer]; 

    // return [self.myTableView headerWithTitle:self.headers[section] totalRows:self.cells.count inSection:section]; 
    return headerView; 
} 

-(IBAction)sectionTapped:(id)sender{ 

    NSLog(@"tapped header"); 
} 

Gibt es sind einfache Möglichkeit Abschnitt Index vom Fass zu übergeben?

+0

ist Ihr gesu ture is works –

Antwort

1

Set-Tag für Ihre headerview wie headerView.tag = section;

- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 

    UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(sectionTapped:)]; 

    UIView *headerView = [UIView new]; 
    headerView.tag = section; 
    headerView.backgroundColor = [UIColor grayColor]; 

    [headerView addGestureRecognizer:recognizer]; 

    // return [self.myTableView headerWithTitle:self.headers[section] totalRows:self.cells.count inSection:section]; 
    return headerView; 
} 

-(IBAction)sectionTapped:(UITapGestureRecognizer *)recognizer{ 

    NSLog(@"tapped header==%d",recognizer.view.tag); 
    NSLog(@"tapped header == %ld", recognizer.view.tag); 
} 

für alternative siehe this

+0

danke, das wird tun. –

+0

'NSLog (@" angezapft header ==% @ ", recognizer.view.tag);' wird die Ausnahme auslösen, weil das Tag NSInteger ist. – Igor

+0

@Igor - Ich aktualisierte Antwort überprüfen einmal mein Bruder, –

1

hinzufügen Tag:

recognizer.view.tag = section; 

und erhalten:

- (IBAction)sectionTapped:(UITapGestureRecognizer *)recognizer{ 
    NSLog(@"tapped header %d", recognizer.view.tag); 
} 
+0

danke, das funktioniert. –