Tag: uigesturerecognizer

无法正确获取UISwipeGestureRecognizer方向

我正在编写代码,以在视图上上下移动两个手指来改变某种状态。 代码如下: UISwipeGestureRecognizer *aSwipeGesture = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeGesture:)]; [aSwipeGesture setDirection:UISwipeGestureRecognizerDirectionUp | UISwipeGestureRecognizerDirectionDown]; aSwipeGesture.numberOfTouchesRequired = 2; [self.View addGestureRecognizer:aSwipeGesture]; – (void)swipeGesture:(UISwipeGestureRecognizer *)sender { NSLog(@"Swipe received."); if (sender.direction==UISwipeGestureRecognizerDirectionUp) { NSLog(@"swipe up"); } else if (sender.direction==UISwipeGestureRecognizerDirectionDown) { NSLog(@"swipe down"); } } 但是,我可以收到的唯一的打印日志是滑动接收如下所示。 我无法得到消息刷卡或刷卡,我错过了什么? 谢谢 ViewController.m:228 Swipe received. ViewController.m:228 Swipe received. ViewController.m:228 Swipe received. ViewController.m:228 Swipe received. ViewController.m:228 Swipe […]

iOS – CALayer和手势/滑动识别器

我添加了一个图层到我的视图来创build渐变背景颜色,但我需要在我的视图中使用UISwipeGestureRecognizer。 问题是,现在,与图层,刷卡识别器不起作用! 我能怎么做?? 我可以添加滑动识别器到图层吗? 谢谢

UITapGestureRecognizer只在初始化阶段在舞台上可见的项目工作

所以,我遍历一个循环,并创build包含UIImageView的UIView (这样我可以select性地显示任何给定的部分)。 这些UIView都存储在一个UIScrollView 。 我将手势识别器添加到创build它们的循环中的UIView 。 当我运行程序时,只有在UIScrollView最初可见的项目才能识别其手势。 如果我滚动到以前隐藏的项目,然后点击它们,什么也没有发生(手势永远不会被识别或尝试)。 初始化代码: UITapGestureRecognizer* gestRec = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture:)]; gestRec.delegate = self; [imageholder addGestureRecognizer:gestRec]; 处理手势的代码: – (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer { float count = [self._imageHolders count]; NSLog(@"handling gesture: %f",count); while(count–){ UIView* object = (UIView*) [self._imageHolders objectAtIndex:count]; // NSLog(@"Whats going on: %@, %@, %b",object,gestureRecognizer.view, object == gestureRecognizer.view); if(object == gestureRecognizer.view){ object.alpha […]

使用locationOfTouch查找手势触摸的坐标

嘿,一直在试图获取用户的滑动位置,以便我可以在屏幕上有3个可滑动的区域,并根据他们的滑动的y坐标确定他们与哪个部分作出反应。 这是代码 CGPoint touchPoint = [recognizer locationOfTouch:0 inView:nil]; 我已经尝试在标签中打印touchPoint.y,我得到的是0.如何获得用户刷卡的坐标? 谢谢。

有没有办法检测多个平移手势?

我希望用户能够从每个拇指同时平移,但我不知道如何使用uigesturerecognizer检测它。 我可以同时检测一个水龙头和一个平底锅没有问题。 看来,第二个潘会阻止第一个。 任何帮助表示赞赏。

UIView上的UITapGestureRecognizer和它的子视图在子视图被抽头时一起响应

UITapGestureRecognizer应用于UIImageView及其子视图( UITextView )。 但是,当我点击子视图,接收器成为子视图和它的父视图(即UIImageView + UITextView )。 它应该只是子视图,因为那是我挖掘的一个。 我假设嵌套的手势会首先作出反应,但显然父母接受拳头轻敲,然后去孩子。 所以,有各种不同的解决scheme(不是类似于我的,而是滚动视图冲突内的button)。 我怎样才能轻松解决我的问题,没有可能的子类和iOS 6 +支持? 我试着拖延UIImageView上的UIGestureRecognizer启动触摸,我试图设置cancelsTouchesInView到NO – 所有没有运气。

识别长按和平移手势识别器

我有一个视图,我已经添加了泛和长按UIGestureRecognizer。 锅是用来移动视图。 我想要做的是还要注意触摸已经停止移动(同时保持活动状态)并触发长按。 我发现,长期开始之后永远不会触发长时间的压力。 我试着设置一个委托并执行: – (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { NSLog(@"simultaneous %@", gestureRecognizer.class); return YES; } – (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRequireFailureOfGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer { NSLog(@"require fail %@", gestureRecognizer.class); return [gestureRecognizer isKindOfClass:[UIPanGestureRecognizer self]]; // also tried return YES; // also tried return [gestureRecognizer isKindOfClass:[UILongPressGestureRecognizer self]]; } 我已经尝试了与泛GR的允许移动愚弄,也无济于事。 我正准备放弃在pan gr中使用计时器,然后重新启动,但是我希望SDK能为我做状态机的工作。

UILongPressGestureRecognizer不能正常工作,但换一个UITapGestureRecognizer可以正常工作。 为什么?

我有一个UIImageView与UILongPressGestureRecognizer附件,似乎从来没有检测到长按手势,无论我如何configuration手势识别器。 但是,如果我换了一个UITapGestureRecognizer , 这工作得很好。 可能会发生什么? 这是我如何configuration我的UILongPressGestureRecognizer : UIImageView* cellView = (UIImageView*)[view viewWithTag:5]; UILongPressGestureRecognizer* longPressGestureRec = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(cellLongPress:)]; longPressGestureRec.numberOfTapsRequired = 1; longPressGestureRec.numberOfTouchesRequired = 1; longPressGestureRec.minimumPressDuration = 0.4; [cellView addGestureRecognizer:longPressGestureRec]; [longPressGestureRec release]; 这是cellLongPress样子: -(void)cellLongPress:(UILongPressGestureRecognizer*)recognizer { // This never gets called. NSLog(@"someone long pressed me"); } 很简单,对吧? 但是,到目前为止还没有运气。 有任何想法吗?

UIButton和滑动手势

我有两个UIButton在每边(左和右)和一个UIImageView在中心UIView 。 点击任一button将改变UIImageView和工程。 我希望能够跨UIView滑动,并改变UIImageView 。 现在,你必须在UIImageView本身上滑动,因为UIButton正在捕捉input。 我希望能够在包含UIView任何地方执行滑动,并执行转换。 有没有办法转发触摸事件,以便滑动可以触发一个动作,但是任何其他的触摸转发到正确的子视图?

如何将手势识别器添加到UIImageView?

在项目中,有一个UIView myView和一个UIImageView myImage,位于myView,views层次结构之后: 的UIWindow | – UIImageView(myImage) | – UIView(myView)[整个屏幕] 然后在ViewController的myImage中添加一个手势识别器 UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleSingleTap:)]; tapGesture.numberOfTapsRequired = 1; [myImage addGestureRecognizer:tapGesture]; 但手势不会影响myImage,myImage具有setUserInteractionEnabled:YES 。 这只会影响myImage放在myView前面,我该如何解决这个问题?