代码之家  ›  专栏  ›  技术社区  ›  buttonSmasher96

使用Swift 3D触摸力值更改声音音量

  •  0
  • buttonSmasher96  · 技术社区  · 8 年前

    我试图使用3D touch force值来改变我的AvaudioUnits采样器在按下按钮时的音量,这取决于使用了多少力。

    这是我当前获取力值的代码

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        if let touch = touches.first {
            print(touch.force)
        }
    }
    

    问题是,有时当我在手机上用力按(使用iPhone 7 plus作为物理设备)时,我得到了0.0。有时我会得到大于0.0的值,但当我用力按得到0.0时,这是个问题。

    1 回复  |  直到 8 年前
        1
  •  1
  •   Josh Homann    8 年前

    通常更容易使用手势识别器,但您仍然可以使用UIResponder触摸方法;但是你用错了。 touchesBegan 只有当力很可能为0或接近它时,才会在触摸开始时给你力。你需要在整个触摸过程中获得更新,所以你想要 touchesMoved . 当然,然后你必须决定触摸是否移动过多,或者只是压力发生了变化,这就是为什么它更容易使用的原因 UILongPressGestureRecognizer ; 这是为你做的。