除了手表识别器的UIView中的一部分外,我该怎么办?

时间:2013-10-22 14:22:24

标签: ios xcode uiview uiviewcontroller uigesturerecognizer

我正在开发一款应用,我希望使用UIViewControllers滚动浏览不同的UISwipeGestureRecognizer。 一切正常,但有一件事我无法找到解决方案。

我像这样添加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进行此操作。

有人可以帮帮我吗?

致以最诚挚的问候,

Lukas Goes

3 个答案:

答案 0 :(得分:0)

您可以使用其他UIView并将其添加到self.view。那些UISwipeGestureRecognizer无法在UIView内使用。

答案 1 :(得分:0)

在交换机上添加另一个UISwipeGestureRecognizer,并在原始的滑动手势识别器上,在交换机的新识别器上调用requireGestureRecognizerToFail:

希望这是有道理的,这是一个冗长的类......:\

答案 2 :(得分:0)

我建议您使用手势识别器的委托方法:gestureRecognizer:shouldReceiveTouch:。 在touch参数中,您有许多信息,例如屏幕中的位置。您可以使用此位置并测试它是否位于开关框架上方。返回yesno,具体取决于您是否要触发与手势识别器关联的选择器。