- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
据我观察,点击手势会在手指移动时取消事件。这是事件处理指南中的屏幕截图:
我已经用下面的代码做了一些测试。不,它取消了...
@IBAction func dosomething(sender: UITapGestureRecognizer) {
//called by gesture recognizer
}
@IBOutlet var red: UIView!
@IBOutlet var green: UIView!
@IBOutlet var yellow: UIView!
@IBOutlet var white: UIView!
//setting delegate when outlet get set.
@IBOutlet var tapGesture: UITapGestureRecognizer! { didSet { outlet.delegate = self
}}
//delegate func shouldReceiveTouch
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
if touch.view == red {
println("ez")
return true
}else if touch.view == green{
println("bp")
return false
}else { view.backgroundColor = UIColor.clearColor()
return true}
}
所以如果我是对的,当 touchesMoved:
被调用时,tapGestureRecognizer
一定失败了,但根据图它没有。我在这里缺少什么?
最佳答案
当用户在 iPhone 应用程序的屏幕上点击或拖动手指时,会发生两件事:
UITouch
对象UIGestureRecognizer
可能会抓取 UITouch
对象并尝试推断用户正在做什么(平移/平移、向上/向下滚动、在页面之间滑动)在浏览器等)UIGestureRecognizer
将不知道用户在做什么,除非用户已经完成点击屏幕。当 UITouch
对象不再是当前 View 的一部分时,iPhone 将知道用户何时完成。
问题是,UIGestureRecognizer
不会“失败”,而是它没有任何值(value)或意义,直到用户的触摸被“取消”或与看法。这可以从图 1-6 右侧的第四列看出。另一个问题是水龙头不是你想象的那样。只需轻轻一按。触摸一开始就结束。如果您尝试在屏幕上滑动或拖动某些内容,则需要不同的 UIGestureRecognizer
对象,例如 UIPanGestureRecognizer
、UILongPressGestureRecognizer
、 UISwipeGestureRecognizer
等
如果您想实际查看此操作,请尝试在 iOS 单 View 应用程序中执行以下操作:
ViewController.swift
文件。ViewController
分类为 UIViewController
的子类。UIGestureRecognizerDelegate
协议(protocol)。UITapGestureRecognizer
对象和 UITouch
对象并将它们链接到 Storyboard中的单个 View 。UIGestureRecognizer
对象的 delegate
设置为 UIViewController
或 self
。touchesBegan:withEvent:
、touchesMoved:withEvent:
、 中添加一些 println
语句来检查触摸何时开始和结束>touchesEnded:withEvent
和 touchesCancelled:withEvent
方法。您可以在 iOS Developer Library 中了解有关这些方法如何工作的更多信息直接。
关于ios - 手指移动点击手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990513/
我用 cocos2d 制作了我的第一个应用程序,所以我在这里很新 我的第一个问题: 我不会让物体(船)跟随我的手指。 -(void) ccTouchMoved:(UITouch *)touch wit
如果某人将右手压在扫描仪的玻璃上进行扫描,结果将如下所示: (没有橙色和白色注释)。我们如何确定某人的 2D:4D ratio从他们的手的图像? 最佳答案 您已经标记了这个很棒的 opencv - 我
我的 View Controller 中有几个 UIScrollView。我想覆盖一个通过 UIPanGestureRecognizer 捕获 2 根手指滑动的 View ,它不会记录 UIScrol
现在这真是令人困惑...在不离开页面的情况下更新 mysql 数据库...我有 3 位代码。 head 标签中的 javascript、body 中的操作按钮以及要在另一个页面上执行的代码。以下是三个
我有这段代码是从 Style clipboard in flutter 得到的 showMenu( context: context, // TODO: Positio
我是一名优秀的程序员,十分优秀!