如何将 UIView 中的一部分用于手势识别器?
Posted
技术标签:
【中文标题】如何将 UIView 中的一部分用于手势识别器?【英文标题】:How can I except a part from a UIView for a gesture recognizer? 【发布时间】:2013-10-22 14:22:23 【问题描述】:我正在开发一个应用程序,我想使用UISwipeGestureRecognizer
滚动浏览不同的UIViewControllers
。
一切正常,但有一件事我找不到解决方案。
我像这样添加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
执行此操作。
有人可以帮帮我吗?
最好的问候,
卢卡斯去
【问题讨论】:
【参考方案1】:您可以使用另一个UIView
并将其添加到self.view
。那些UISwipeGestureRecognizer
不能在UIView
中工作。
【讨论】:
所以我必须在 UISwitch 上方和它周围的地方添加另一个 UIView? 你可以把你的 UISwitch 放在那个视图里 好的,谢谢!我会试试的。【参考方案2】:向开关添加另一个UISwipeGestureRecognizer
,然后在您原来的滑动手势识别器上,调用开关的新识别器上的requireGestureRecognizerToFail:
。
希望这是有道理的,这是一个如此冗长的类...:\
【讨论】:
【参考方案3】:我建议你使用手势识别器的委托方法:gestureRecognizer:shouldReceiveTouch:
。
在touch
参数中,您有很多信息,例如屏幕中的位置。您可以使用此位置并测试它是否在开关框架上方。返回yes
或no
,具体取决于您是否要触发与手势识别器关联的选择器。
【讨论】:
以上是关于如何将 UIView 中的一部分用于手势识别器?的主要内容,如果未能解决你的问题,请参考以下文章