[iOS 13.0触摸开始延迟比ios 12有所增加

问题描述 投票:0回答:1

在我的项目中,我使用以下设置进行了点击手势

    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(sceneViewTapped(gesture:)))
    tapGesture.cancelsTouchesInView = true
    tapGesture.delaysTouchesBegan = true
    self.view.addGestureRecognizer(tapGesture)

并且也具有override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)之类的Touch方法>

我使用tapGesture.delaysTouchesBegan = true设置了触摸手势,可以同时使用手势和触摸委托方法

直到iOS12都可以正常工作,但是在iOS13中,触摸延迟增加了,因此用户必须拖动手指并等待绘图开始,因为触摸方法称为延迟

请参考下图,有时手势丢失,开始绘制时延迟。

如果我删除delaysTouchesBegan,它将再次变得平滑。

谁能帮我解决这个问题?

enter image description here

样本项目

要快速测试此内容,请下载raywenderlich项目https://www.raywenderlich.com/5895-uikit-drawing-tutorial-how-to-make-a-simple-drawing-app

ViewController.swlft中添加以下代码

override func viewDidLoad() {
    super.viewDidLoad()
    let tapGesture = UITapGestureRecognizer(target: self, action: #selector(viewTapped(gesture:)))
    tapGesture.delaysTouchesBegan = true
    self.view.addGestureRecognizer(tapGesture)

  }

  @objc func viewTapped(gesture:UITapGestureRecognizer) {
    print("View Tapped")
  }

在我的项目中,我使用以下设置进行点击手势,让tapGesture = UITapGestureRecognizer(target:self,action:#selector(sceneViewTapped(gesture :)))tapGesture.cancelsTouchesInView = ...

swift touch gesture ios13
1个回答
0
投票

这是iOS 13.0错误

© www.soinside.com 2019 - 2024. All rights reserved.