gpt4 book ai didi

ios - 手指移动点击手势

转载 作者:搜寻专家 更新时间:2023-10-31 19:35:10 25 4
gpt4 key购买 nike

据我观察,点击手势会在手指移动时取消事件。这是事件处理指南中的屏幕截图:

enter image description here

我已经用下面的代码做了一些测试。不,它取消了...

http://i.hizliresim.com/ogZVjR.png

    @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 应用程序的屏幕上点击或拖动手指时,会发生两件事:

  1. View 接收一个UITouch对象
  2. UIGestureRecognizer 可能会抓取 UITouch 对象并尝试推断用户正在做什么(平移/平移、向上/向下滚动、在页面之间滑动)在浏览器等)

UIGestureRecognizer 将不知道用户在做什么,除非用户已经完成点击屏幕。当 UITouch 对象不再是当前 View 的一部分时,iPhone 将知道用户何时完成。

问题是,UIGestureRecognizer 不会“失败”,而是它没有任何值(value)或意义,直到用户的触摸被“取消”或与看法。这可以从图 1-6 右侧的第四列看出。另一个问题是水龙头不是你想象的那样。只需轻轻一按。触摸一开始就结束。如果您尝试在屏幕上滑动或拖动某些内容,则需要不同的 UIGestureRecognizer 对象,例如 UIPanGestureRecognizerUILongPressGestureRecognizer UISwipeGestureRecognizer

如果您想实际查看此操作,请尝试在 iOS 单 View 应用程序中执行以下操作:

  1. 创建一个 ViewController.swift 文件。
  2. 将您的 ViewController 分类为 UIViewController 的子类。
  3. 添加一个 UIGestureRecognizerDelegate 协议(protocol)。
  4. 添加一些 UITapGestureRecognizer 对象和 UITouch 对象并将它们链接到 Storyboard中的单个 View 。
  5. UIGestureRecognizer 对象的 delegate 设置为 UIViewControllerself
  6. 通过在 touchesBegan:withEvent:touchesMoved:withEvent: 中添加一些 println 语句来检查触摸何时开始和结束>touchesEnded:withEventtouchesCancelled:withEvent 方法。

您可以在 iOS Developer Library 中了解有关这些方法如何工作的更多信息直接。

关于ios - 手指移动点击手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29990513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com