2010-07-28 21 views
6

nasıl ben denedim tablo hücreleri için dokunmatik olayını tespit etmek için buiphone için tablo hücrelerinde dokunma olayı nasıl algılanır

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

    [super touchesBegan:touches withEvent:event]; 
} 

ama onun ı tablo hücresinde aUIimage görünüme sahip ve benim dokunma olayı bunun için çalışmıyor bu yüzden dokunun dayalı imgae chnage istiyorum actuallly çalışmıyor hücre

cevap

2

Muhtemelen myImageView.userInteractionEnabled = YES; ayarlamalısınız.

+0

zaten yaptım ama dokunma olayı hala çalışmıyor :( – ram

+0

çok hücre üzerinde ayarlama denediniz mi? – jtbandes

+0

evet ben yaptım hem yan .. benim dokunma olayı hiç tablo hücrelerinde çalışmıyor onun Sadece hücrelerin dışında çalışma – ram

9

UITableViewCell'de bir dokunuş tespit etmek istiyorsanız, dokunma olaylarını gerçekten algılamaya gerek yoktur.

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

Sonra seçilen endeks yolu için tablo hücresinin imajını değiştirin: senin UITableViewController alt sınıfında, aşağıdaki temsilci yöntemini uygulamak gerekir.

+1

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

2

Projelerimden birinde, alttaki tabloyu gösterecek şekilde klavyeyi kapatmak için tabloya herhangi bir dokunuşa ihtiyacım vardı. Bir UITableView gerçekten UIScrollView olduğundan, scrollView temsilci yöntemlerine yanıt verir. ya kullanıcının bir hücre üzerinde musluklar veya hiç tableView kayar eğer görevden alacak bu 2 yöntemler kullanarak:

ÖNEMLİ: UITableViewDelegate ve UITableViewDataSourceDelegate yanı sıra sizin .h dosyasında UIScrollViewDelegate uygulamak emin olun !!!

- (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]; 
    } 
} 
İlgili konular