我有一個簡單的滑動手勢,我想要非常低的優先級。我希望它被視圖上的控件發生的事件取消。起初,我認爲這很簡單。手勢發生時很容易取消事件,但我似乎無法相反。獲取UIEvent取消UIGestureRecognizer
我的解決方案是取消手勢,如果它與任何可觸摸的東西衝突。以下是我一起入侵的代碼:
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
CGPoint touch = [gestureRecognizer locationInView:self.view];
return [self.view hitTest:touch withEvent:nil] == self.view;
}
我覺得這是對問題的錯誤解決方案。我錯過了什麼?什麼是正確的方式來取消活動取消手勢?
對於更多的上下文,我有兩個UISwipeGestureRecognizers(向左滑動並向右滑動)添加到視圖中。視圖中還有一個UISlider(嵌入式MPVolumeView的一部分)。當我移動滑塊來改變音量時,左側或右側的滑動將會觸發。
在問題中增加了更多細節。 UISlider正在移動時,UISwipeGestureRecognizer正在觸發。 –
Ahh好吧 - 我猜滑塊不會阻止其他地方被觸發。使用手勢識別器的視圖通常會阻止這種情況。在這種情況下,我認爲這種方法是正確的。 – jhabbott