Tag: uigesturerecognizer

确定一个CALayer旋转了多less

我有一个CALayer必须旋转到一定值的程序。 我如何确定一个CALayer的当前旋转? 我有一个旋转图层的UIRotationGestureRecognizer: – (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer { if (gestureRecognizer == rotationGestureRecognizer) { NSLog(@"gestureRecRotation: %f", rotationGestureRecognizer.rotation); CATransform3D current = _baseLayer.transform; _baseLayer.transform = CATransform3DRotate(current, rotationGestureRecognizer.rotation * M_PI / 180, 0, 0, 1.0); } } 我从一个图层开始,必须旋转一定的数量来适应一个难题。 那么如何获得图层的当前旋转呢?

有了UIPanGestureRecognizer,有没有一种方法只能像许多像素被淘汰之后那么频繁?

现在我的UIPanGestureRecognizer可以识别每个单独的平移,这是非常好的必要条件,但是由于我用滑动手势来增加和减less一个variables的值,所以我只想每隔一段时间就采取行动。 如果我每次检测到增加1,那么这个值就会变得太快。 有没有办法做像这样的每10个像素的像这样或类似的东西?

UIGestureRecognizers与touchesBegan / touchesMoved / touchesEnded(准确性)

我正在打印使用这两种触摸跟踪方法得到的点列表。 手势识别器比较容易使用,但是如果比较touchesBegan过程中得到的点,识别器会避免一些点,特别是在运动开始时。 有人知道这两个程序之间的准确性是否有差异? 谢谢!

iOS将tapGesture添加到多个视图

我在我的主视图中定义了多个视图。 我想为所有这些视图添加单击手势。 下面是我写的代码,但是这个注册点击手势到我添加的最后一个视图。 所以在下面的代码中,点击仅针对messagesView注册,不针对其他视图。 我有两个问题: 如何将相同的tapGesture注册到多个视图? 让我们假设我得到这个工作,现在从这些意见的所有单一水龙头goto相同的function称为oneTap 。 在这个function中,我如何区分轻拍来自哪个视图? 码: @synthesize feedsView, peopleView, messagesView, photosView; – (void)viewDidLoad { [super viewDidLoad]; UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(oneTap:)]; [singleTap setNumberOfTapsRequired:1]; [singleTap setNumberOfTouchesRequired:1]; [feedsView addGestureRecognizer:singleTap]; [peopleView addGestureRecognizer:singleTap]; [messagesView addGestureRecognizer:singleTap]; //[photosView addGestureRecognizer:singleTap]; [singleTap release]; return; }

处理iOS6中的手势识别器

显然iOS 6会尝试自动处理这种情况,当你在同一个地方有一个手势识别器和一个UIButton ,为同一个手势激活。 这个新的自动处理解决了当你想单击button而不是激活手势识别器时的问题 ,但是当你希望手势识别器动作时, 会产生新的问题 。 在iOS 5中,您可以实现: -(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 在发生冲突时将行动转移到UIButton 。 这似乎在iOS 6中不起作用。另外,反转此方法的行为(因为现在UIButton具有优先级而不是手势识别器)将不起作用。 完整的方法: – (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { if ([touch.view isKindOfClass:[UIControl class]]){ return NO; } return YES; }

自定义iOS手势

我是iOS / Objective-C的新手,我想知道如何构build自定义手势。 特别是,如果用户轻击屏幕的右上angular,并将他/她的手指沿着设备的边缘向下滑动(与左手侧相同的手势)。 我读过这个: https://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/GestureRecognizers/GestureRecognizers.html#//apple_ref/doc/uid/TP40009541-CH6-SW2 但是我想我很难搞清楚如何将其应用于我的具体情况。

调用setCancelsTouchesInView时会发生什么?

想知道当我调用setCancelsTouchesInView时会发生什么。 这不包括在官方文档中http://developer.apple.com/library/ios/#documentation/uikit/reference/UIGestureRecognizer_Class/Reference/Reference.html 谢谢

获取UITestureRecognizer的UITouch对象

有没有办法获得与手势相关联的UITouch对象? UIGestureRecognizer似乎没有任何方法。

iOS:如何获得长按手势的持续时间?

我正在进行一个游戏,其中通过长时间按压对象本身来设置游戏对象的属性。 属性的值由长按手势的持续时间决定。 我使用UILongPressGestureRecognizer来达到这个目的,所以它是这样的: [gameObjectView addGestureRecognizer:[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handle:)]]; 然后处理函数 – (void)handle:(UILongPressGestureRecognizer)gesture { if (gesture.state == UIGestureRecognizerStateEnded) { // Get the duration of the gesture and calculate the value for the attribute } } 在这种情况下,如何获得长按手势的持续时间?

如何取消/重置UIGestureRecognizer

我如何取消或重置UIGestureRecognizer ? 问题是,如果在手势过程中将waitForSomething设置为NO ,则下一个事件是UIGestureRecognizerStateChanged 。 但是第一个事件应该是UIGestureRecognizerStateBegan 。 我的代码: – (void) panned:(UIPanGestureRecognizer *) recognizer { if (waitForSomething) { // cancel or reset the recognizer! // because the next event should be UIGestureRecognizerStateBegan and not UIGestureRecognizerStateChanged return; } switch (recognizer.state) { case UIGestureRecognizerStateBegan: // important initialisation code break; case UIGestureRecognizerStateChanged: // do something break; } } 谢谢你的帮助!