2011-02-03 13 views
26

Merhaba Bir opengl görünümüm var ve üzerinde bir sekme çubuğum var. Ekranda farklı 3d nesnelere dokunmak için bir dokunuş tanıyıcı kullanıyorum. Sekme çubuğunda bir düğmem var, ancak dokunma tanıyıcı bu muslukları da yakaladığı için çalışmaz. Bunu nasıl durduracağım? Zaten bu denedim:UITapGestureRecognizer'ı HER KOLAY yakalamak için nasıl durdurursunuz?


- (BOOL) gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    if ([touch.view isKindOfClass:[UIBarButtonItem class]]) return FALSE; 
    return TRUE; 
} 

Ben her zaman DOĞRU döndürür hata ayıklama zaman çünkü ben bir şekilde yanlış classess karşılaştırarak ediyorum düşünüyorum.

+3

if-ifadeniz asla yanlış döndürülemez - bir düğme bir görünüm değil ... Ancak, farklı kademe konumlarında görünüm aldığınız hata ayıklayıcısında bir kesme noktası aracılığıyla kontrol edebilirsiniz. – Axel

+0

Oh ... Sadece UIBarButtonItem'in 'UIView' olmadığını fark ettim :) Teşekkürler. –

cevap

27
 
    if ([touch.view.superview isKindOfClass:[UIToolbar class]]) return FALSE; 

Bu şekilde çalışmaya başladım. Süper görüntü, muhtemelen bir UIToolbar, muhtemelen UIBarButtonIttemis a view.

+0

Bu, jest tanımlayıcısının görünümündeki isabet testinin başarısız olduğu yerde çalıştı. Açıkçası, bir UITableView içinde çalışıyordum ve jestin yeri, "{0, contentOffset - someConstant}" olarak bildirildi. Dokunma görünümünü kontrol etmek iyi bir çözümdür. Teşekkürler. – Justin

32

Ya da yalnızca [singleTap setCancelsTouchesInView:NO] yapabilirsiniz. Örnek:

UITapGestureRecognizer *singleTap = [ 
    [UITapGestureRecognizer alloc] 
    initWithTarget: self 
    action: @selector(yourSelector:) 
]; 
[singleTap setCancelsTouchesInView:NO]; 
[[self view] addGestureRecognizer: singleTap]; 
+1

Ayrıca Interface Builder'da _Canceled'de View_'de mevcuttur. Harika! –

+0

Sadece işe yarayan şey. Ve bir çekicilik gibi, ekleyebilir miyim! kodun geri kalanıyla uğraşmak yok. thks! – StinkyCat

+0

Harika cevap teşekkür ederim! –

İlgili konular