草庐IT

uigesturerecognizer

全部标签

ios - 将 UIGestureRecognizer 初始化为 Swift 中属性定义的一部分?

我想将UIPanGestureRecognizer初始化为UIViewController的属性定义的一部分,这样我就不必将其声明为可选的(因为我会如果初始化仅发生在viewDidLoad中)。以下两次尝试都在编译时失败(我使用的是最新版本的Xcode):--1stattemptclassTestController:UIViewController{letpanGestureRecognizer:UIPanGestureRecognizerrequiredinit(coder:NSCoder){super.init(coder:coder)panGestureRecognizer=U

ios - 如何在不从屏幕上抬起手指的情况下触发多个 UIGestureRecognizer

我在屏幕上有相邻的View,每个View都有不同的UIGestureRecognizer。我想要的是,如果我在一个View中按下并移动到相邻View,相邻View的手势识别器将开始检测触摸。当前发生的情况是,如果我在一个View中触碰并移出该View的框架,初始View的手势识别器将继续接收对touchChanged的调用,直到我的手指抬起。如果我将手势识别器的state更改为.ended、.failed或.cancelled,在我的手指抬起之前,没有其他手势识别器会收到对其touch方法的调用。如何确保手势识别器在触摸进入其View边界时触发,并在触摸离开时结束,而无需处理来自父Vi

ios - 在画外音中注册 UIGestureRecognizer Action

我有一个标准的UIViewController并注册了一个UISwipeGestureRecognizer,在我的viewDidLoad覆盖中将View委托(delegate)给它。手势正确注册并调用适当的操作,但是当画外音打开时不会发生这种情况。UIGestureRecognizer是否仅适用于iOS中的标准用法?有没有办法通过语音来记录这些手势,无论是双击、滑动、捏合/缩放等? 最佳答案 弄清楚这是如何工作的,我认为值得分享:在查看了UIView类以及UIAccessibilityTraits之后,所有UIView及其子类都有一

ios - 带闭包的 UIGestureRecognizer

我有一个View,我想在其中执行向右滑动的手势。不幸的是我收到错误EXC_BAD_ACCESS。有人知道这里出了什么问题吗?请看下面的代码。extensionUIView{funcaddGestureRecognizerWithAction(nizer:UIGestureRecognizer,action:()->()){classInvoker{varaction:()->()init(action:()->()){self.action=action}funcinvokeTarget(nizer:UIGestureRecognizer){self.action()println("

ios - 拖放 - UIGestureRecognizer - View 未添加到我想要的位置

我在splitViewController中有这2个tableView(所有可用服务和提供的服务)。这个想法是,然后单元格移动到屏幕中心,它移动到提供服务的TableView。除了触摸`.began之外,一切正常,单元格被添加到覆盖导航栏的tableView的顶部。在.changed上它跟随我的手指我希望在触摸开始的地方添加View/单元格,在我触摸的“ServiceCell”之上。我尝试将它添加到splitViewController.view但我认为我的逻辑有问题。这里是代码:funcdidLongPressCell(gr:UILongPressGestureRecognizer)

swift - 覆盖 UIGestureRecognizer touchesBegan

我有1个主视图和1个subview:主视图>subview我认为主视图正在“窃取”subview中的事件。例如,当我点击SubView时,只有MainViewGestureRecognizer启动。这是我的自定义GestureRecognizer(拦截每个触摸事件):importUIKitimportUIKit.UIGestureRecognizerSubclassclassMainGestureRecognizer:UIGestureRecognizer{overridefunctouchesBegan(touches:NSSet!,withEventevent:UIEvent!){

ios - 用于两指手势的自定义 UIGestureRecognizer

我有一个自定义的UIGestureRecognizer用于双指手势,它可以完美地工作,除了它非常挑剔手指必须同时触摸iOS设备的时间,以便通过两次触摸调用touchesBegan。touchesBegan通常只用一次Touch调用,即使我尝试使用两根手指也是如此。有没有什么方法可以更宽容地识别触摸次数,以及您必须同时将手指放在触摸屏上的时间?我注意到,即使您先放置一根手指然后放置另一根手指,同时仍然按住第一根手指,也能识别出两根手指的敲击。这是我的touchesBegan函数的代码:overridefunctouchesBegan(_touches:Set,withevent:UIEv

ios - 自定义单元格和 dequeueCellWithIdentifier 中的 UIGestureRecognizer 冲突

我在UITableView中注册了一个自定义UITableViewCell(.h、.m、.xib)。现在我需要在单元格内使用自定义UIImage并将手势识别器附加到它(我不能使用UIButton)。问题是如果它在运行时我得到一个Terminatingappduetouncaughtexception'NSInternalInconsistencyException',reason:'invalidnibregisteredforidentifier(CustomCell)-nibmustcontainexactlyonetoplevelobjectwhichmustbeaUITable

ios - 如何以编程方式结束/重置 UIGestureRecognizer?

假设我目前正在跟踪拖动手势。在我的事件处理程序中,我使用一个阈值来确定拖动何时导致Action。当超过阈值时,我想指示拖动手势已完成。我在文档中唯一能找到的就是这行here:IfyouchangethispropertytoNOwhileagesturerecognizeriscurrentlyrecognizingagesture,thegesturerecognizertransitionstoacancelledstate.所以:if(translation.y>100){//doaction[selfdoAction];//endrecognizersender.enabled

iphone - UIView 的一部分的 UIGestureRecognizer

我在我的iOS应用程序中使用UIGestureRecognizer,但遇到了一些问题。我只希望手势在View的特定区域起作用,因此我创建了一个具有特定框架的新UIView并将其添加到RootView。手势可以正常工作,但现在唯一的问题是我无法单击新View下方/后面的内容(RootView上的对象)。如果我将userInteractionEnabled设置为NO,它会破坏手势,所以这不是一个选项。我该怎么做才能解决这个问题?谢谢。 最佳答案 不要为您的手势识别器创建新View。识别器实现locationInView:方法。为包含敏感