2013-10-22 52 views
0

我正在開發一個應用程序,我想用UISwipeGestureRecognizer滾動瀏覽不同的UIViewControllers。 一切正常,但有一件事我找不到解決方案。如何從UIView中爲手勢識別器除外?

我添加了UIGestureRecognizers這樣

- (void)viewDidLoad { 
[super viewDidLoad]; 
UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeft)]; 
[swipeLeft setDirection:UISwipeGestureRecognizerDirectionLeft]; 
[self.view addGestureRecognizer:swipeLeft]; 

UISwipeGestureRecognizer *swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeRight)]; 
[swipeRight setDirection:UISwipeGestureRecognizerDirectionRight]; 
[self.view addGestureRecognizer:swipeRight]; 
} 

現在我想知道,如果有可能,除了self.view那裏可以刷卡到不同的視圖的一部分。 我想圍繞UISwitch這樣做。

有人可以幫我嗎?

最好的問候,

盧卡斯去

回答

0

您可以使用另一個UIView並將其添加到self.view。那UISwipeGestureRecognizer將不會在該UIView內工作。

+0

所以我不得不在UISwitch和它周圍的地方添加另一個UIView? –

+0

你可以把你的UISwitch放在那個視圖裏 – Zalykr

+0

好的,thnx!我會嘗試。 –

0

將另一個UISwipeGestureRecognizer添加到交換機,並且在您的原始輕掃手勢識別器上,在交換機的新識別器上調用requireGestureRecognizerToFail:

希望是有道理的,它是這樣一個冗長類...:\

0

我建議你使用手勢識別的委託方法:gestureRecognizer:shouldReceiveTouch:。 在touch參數中,您有許多信息,例如屏幕中的位置。您可以使用此位置並測試它是否在開關框架上方。根據您是否要觸發與手勢識別器關聯的選擇器返回yesno