Tag: uigesturerecognizer

如何在swift中以编程方式调用UIView的手势点击

我有一个UIView和我已经添加了点击手势: let tap = UITapGestureRecognizer(target: self, action: Selector("handleTap:")) tap.delegate = self myView.addGesture(tap) 我想在testing文件中以编程方式调用它。 sendActionForEvent 我正在使用这个function,但它不工作: myView.sendActionForEvent(UIEvents.touchUpDown) 它显示发送给实例的无法识别的select器。 我怎么解决这个问题? 提前致谢

UIGestureRecognizer阻止子视图处理触摸事件

我试图弄清楚这是如何做到正确的 。 我试图描绘的情况: 我添加一个UITableView作为UIView的子视图。 UIView响应pinchGestureRecognizer和pinchGestureRecognizer ,但是当这样做时,tableview停止对这两个手势作出反应(它仍然对滑动作出反应)。 我已经使它与下面的代码工作,但它显然不是一个很好的解决scheme,我敢肯定有一个更好的方法。 这是放在UIView (超级视图): -(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { if([super hitTest:point withEvent:event] == self) { for (id gesture in self.gestureRecognizers) { [gesture setEnabled:YES]; } return self; } for (id gesture in self.gestureRecognizers) { [gesture setEnabled:NO]; } return [self.subviews lastObject]; }

UIPanGestureRecognizer – 只有垂直或水平

我有一个视图,有一个UIPanGestureRecognizer垂直拖动视图。 所以在识别器callback中,我只更新y坐标来移动它。 这个视图的UIPanGestureRecognizer视图有一个UIPanGestureRecognizer ,它将水平拖动视图,只是更新x坐标。 问题是第一个UIPanGestureRecognizer正在使事件垂直移动视图,所以我不能使用超级视图手势。 我努力了 – (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer: (UIGestureRecognizer *)otherGestureRecognizer; 两者都可以工作,但是我不想那样做。 只有当运动明显水平时,才需要水平检测。 所以如果UIPanGestureRecognizer具有方向属性,那将是非常好的。 我怎样才能做到这一点? 我发现文档非常混乱,所以也许有人可以在这里更好地解释它。

如何在iOS 7的UINavigationController中禁用反滑动手势

在iOS 7中,Apple增加了一个新的默认导航行为。 您可以从屏幕左侧滑动以返回导航堆栈。 但在我的应用程序中,这种行为与我的自定义左菜单冲突。 那么,是否可以在UINavigationController中禁用这个新手势?

按下UILongPressGestureRecognizer会被调用两次

我正在检测用户是否按下了2秒钟: UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; longPress.minimumPressDuration = 2.0; [self addGestureRecognizer:longPress]; [longPress release]; 这是我如何处理长按: -(void)handleLongPress:(UILongPressGestureRecognizer*)recognizer{ NSLog(@"double oo"); } 当按下2秒以上时,文本“double oo”会被打印两次。 为什么是这样? 我该如何解决?

UIImageView上的UIGestureRecognizer

我有一个UIImageView ,我想要能够调整和旋转等 UIGestureRecognizer可以添加到UIImageView吗? 我想要添加一个旋转和捏认识到UIImageView将在运行时创build。 如何添加这些识别器?

Swift3 iOS – 如何使UITapGestureRecognizer触发器function

我试图添加一个UITapGesture到一个UIButton,所以它会触发一个function,当点击。 我正在使用Swift 3并出现一些错误: 终止应用程序由于未捕获的exception'NSInvalidArgumentException',原因:' – [SwiftRunner.ViewController tapBlurButton]:无法识别的select发送到实例0x149e07610' 这大致是我所拥有的: // Swift 3 import UIKit class ViewController { @IBOutlet weak var qsBlurButton: UIButton! override func viewDidLoad() { super.viewDidLoad() let tapGesture = UITapGestureRecognizer(target: self, action: Selector(("tapBlurButton"))) qsBlurButton.addGestureRecognizer(tapGesture) } func tapBlurButton(sender: UITapGestureRecognizer) { print("Please Help!") } }

如何检测iPhone SDK中的滑动手势?

在我的iPhone应用程序中,我需要识别用户在视图上所做的轻扫手势。 我想要识别滑动手势并在滑动时执行一个function。 我需要该视图应水平滑动,并显示另一个视图为用户做一个滑动的手势。 需要做什么? 我如何识别它? 任何方向或教程将非常感激。

如何禁用UIPageViewController的轻扫手势?

在我的情况下,父UIViewController包含UIPageViewController ,其中包含UINavigationController其中包含UIViewController 。 我想添加一个滑动手势到最后一个视图控制器,但滑动处理,如果他们属于页面视图控制器。 我试图以编程方式和通过xib,但没有结果。 所以据我所知,我不能达到我的目标,直到UIPageViewController处理其手势。 如何解决这个问题?

UITapGestureRecognizer – 单击和双击

我正在尝试将2个UITapGestureRecognizers添加到视图中,一个用于单击,另一个用于双击事件。 单击识别器按预期工作(单独)。 但是我似乎无法获得双击识别器的工作。 试图尝试类似的属性: cancelsTouchesInView , delaysTouchesBegan和delaysTouchesEnded但仍然无法正常工作。 当我双击时,单击的识别器总是被激活,双击事件也会被发送到超级视图。 但是自定义双击识别器似乎没有被通知。 文件似乎表明,上面提到的三个属性可以用于这个目的。 但是我只是不确定应该设置哪些值以及哪些识别器(单个,双重或两者)。 希望有人熟悉这可以帮助。 以下是最新更新的代码块。 // ****** gesture recognizers ****** – (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view { // single tap UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)]; [singleTapRecognizer setNumberOfTouchesRequired:1]; [view addGestureRecognizer: singleTapRecognizer]; // double tap UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)]; [doubleTapRecognizer setNumberOfTouchesRequired:2]; [singleTapRecognizer […]