2010-07-28 11 views
6

come rilevare evento di tocco per le celle della tabella Ho provato questocome rilevare evento di tocco nelle celle della tabella per iPhone

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

    [super touchesBegan:touches withEvent:event]; 
} 

, ma la sua non funziona actuallly ho vista aUIimage nella cella di una tabella e voglio chnage imgae in base al tocco, quindi il mio evento tocco non funziona per quella cella

risposta

2

Probabilmente è necessario impostare myImageView.userInteractionEnabled = YES;.

+0

ho già fatto, ma tocco evento non è ancora lavorando :( – ram

+0

Hai provato impostandola sulla cella troppo? – jtbandes

+0

sì entrambi i lati ho fatto .. il mio evento di tocco non è affatto lavorando in celle della tabella sua funziona solo al di fuori delle celle – ram

9

Se si desidera rilevare un tocco sull'UITableViewCell, non è necessario rilevare gli eventi di tocco. Nella sottoclasse UITableViewController, è necessario implementare il seguente metodo delegato:

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

Poi si modifica l'immagine della cella della tabella per il percorso indice selezionato.

+1

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

2

In uno dei miei progetti ho avuto bisogno di un tocco sulla tabellaView per chiudere la tastiera in modo da mostrare la tabella sottostante. Dato che UITableView è in realtà un UIScrollView, risponderà ai metodi dei delegati scrollView. L'utilizzo di questi 2 metodi saranno respingere se sia l'utente tocca su una cella o scorre la tableView affatto:

IMPORTANTE: assicurarsi di implementare il UIScrollViewDelegate nel file .h così come l'UITableViewDelegate e UITableViewDataSourceDelegate !!!

- (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]; 
    } 
} 
Problemi correlati