在UIViewController中跟踪手指

时间:2016-04-20 15:38:12

标签: swift uigesturerecognizer uitouch touchesbegan

我想在UIViewController中追踪我手指的位置。我使用以下函数实现了这个功能,这非常有效!

override func viewDidLoad() {

    view.userInteractionEnabled = true
    view.multipleTouchEnabled = true

    super.viewDidLoad()
}


override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
  //Create subview and place it under your finger.
}

override func touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) {
  //Here methods which tracks the moves of the finger and updates the subviews position.
}

override func touchesEnded(touches: Set<UITouch>, withEvent event: UIEvent?) {
  //Remove subview from superview overhere.
}

我有两个问题:

  1. 当我在屏幕上按下超过5个手指时,将不再调用touchesBegin / touchesMoved / touchesEnded。即使我放置6个手指并移除1.
  2. 有时候,touchesBegan会从我屏幕上的随机位置调用。之后调用TouchesEnded为同一点。
  3. 我应该以另一种方式实现吗?我也尝试使用UIGestureRecognizer,但没有成功。

    我添加了这个功能

    override func touchesCancelled(touches: Set<UITouch>?, withEvent event: UIEvent?) {
    }
    

    当我点击屏幕上的第6个手指时,会调用此方法。

0 个答案:

没有答案