2011-04-05 62 views
0

我有一個關於如何添加一個點擊手勢到UITabBarController的問題。由於UITabBarController內置了輕敲手勢(響應標籤欄上標籤欄項的輕擊),而從技術上講,我可以將自己的手勢添加到tabBarController,TabBar會丟失自己的原生輕擊手勢。下面是我想做的事:添加點擊手勢到一個tabBarController

UIViewController *VC1 = ....; 
UIViewController *VC2 = ....; 

UITabBarController *tabBarController = [[UITabBarController alloc] init]; 
tabBarController.viewControllers = [NSArray arrayWithObjects: VC1, VC2, nil]; 
UITapGestureRecognizer *tapGR = [[UITapGestureRecognizer alloc] 
              initWithTarget:VC1 
                 action:@selector(tap:)]; 




[tabBarController.view addGestureRecognizer:tapGR]; 

這正確響應敲擊法「龍頭」,但tabBarController失去了它的原生攻絲反應到水龍頭物品欄。我試圖將手勢添加到視圖控制器之一的tabBarController這樣的:

[VC1.view addGestureRecognizer:tapGR]; 

但當時做這種方式的觸擊手勢完全不認識,雖然使用TabBar的敲擊上的本地龍頭識別標籤欄項目被保留。

有沒有人對如何解決這類問題有任何建議?我想一種方法是選擇另一種手勢,而不是點擊使用tabBarController,但我真的寧願不這樣做......

非常感謝您的查看!

回答

1

我不得不想知道你正在用什麼手段來處理已經處理水龍頭的控件。請考慮你所做的是否會混淆你的用戶。

但是,如果您必須嘗試在手勢識別器上將cancelsTouchesInView設置爲NO。除了由識別器處理之外,應該允許將觸摸傳遞給視圖。

+0

非常感謝!這解決了我的問題。標籤欄控制器的原生輕擊手勢僅處理標籤欄上的輕敲事件,但添加另一個輕擊手勢可讓我使整個屏幕響應另一個輕敲事件。 – JusmanX 2011-04-05 23:06:44