2010-07-28 5 views
6

wie für Tabellenzellen Berührungsereignis zu erfassen, habe ich versucht, diesewie Berührungsereignis in Tabellenzellen für iphone zu erkennen

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    //<my stuff> 

    [super touchesBegan:touches withEvent:event]; 
} 

aber sein nicht funktioniert actuallly habe ich aUIimage Ansicht in Tabellenzelle, und ich will imgae chnage basierend auf Tippen, damit mein Berührungsereignis für diese Zelle nicht funktioniert

Antwort

2

Sie müssen wahrscheinlich myImageView.userInteractionEnabled = YES; einstellen.

+0

ich habe bereits, dass aber Berührungsereignis arbeitet immer noch nicht :( – ram

+0

Haben Sie es auf der Zelle zu versucht Einstellung? – jtbandes

+0

ja beide Seite ich habe .. mein Berührungsereignis an nicht alle Arbeiten in Tabellenzellen ihre funktioniert nur außerhalb von Zellen – ram

9

Wenn Sie eine Berührung auf der UITableViewCell erkennen möchten, müssen Sie keine Berührungsereignisse erkennen. In Ihrer UITableViewController Unterklasse, müssen Sie die folgende delegierte Methode implementieren:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath; 

Dann ändern Sie das Bild der Tabellenzelle für den ausgewählten Indexpfad.

+1

- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPfad {} –

2

In einem meiner Projekte brauchte ich jedes Tippen auf die TableView, um die Tastatur zu schließen, so dass die zugrunde liegende TableView angezeigt würde. Da ein UITableView in Wirklichkeit ein UIScrollView ist, wird es auf die Delegiertenmethoden von scrollView antworten. Mit diesen zwei Methoden entlassen werden, wenn der Benutzer entweder auf eine Zelle tippt oder die Tableview scrollt überhaupt:

Wichtig: Stellen Sie sicher, dass Sie die UIScrollViewDelegate in Ihrer .h-Datei sowie die UITableViewDelegate und UITableViewDataSourceDelegate implementieren !!!

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    //remove keyboard if table row is clicked 
    if ([self.firstName isFirstResponder] || [self.lastName isFirstResponder]) { 
     [tableView deselectRowAtIndexPath:indexPath animated:NO]; 
     [self.firstName resignFirstResponder]; 
     [self.lastName resignFirstResponder]; 
    } 
} 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    //remove keyboard if table scrolls 
    if ([self.firstName isFirstResponder] || [self.lastName isFirstResponder]) { 
     [self.firstName resignFirstResponder]; 
     [self.lastName resignFirstResponder]; 
    } 
} 
Verwandte Themen