2017-11-21 14 views
0

使用量に応じてボタンを押したときに、3Dタッチフォース値を使用してAVAudioUnitSamplerの音量を変更しようとしています。スウィフト3Dタッチフォース値を使用して音量を変更する

これは、問題は、私は(iPhone 7プラスなどの物理デバイスを使用して)自分の携帯電話には本当に難しい押すと、時々、私は0.0を取得していますということである力の値

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

を得るために私の現在のコードです。時々私は0.0以上のものを得るでしょうが、私が本当に強く押して0.0を得ると問題になります。

これを行うには良い方法を達成しようとしていますか、それとも良い方法がありますか?

答えて

1

一般的にはジェスチャ認識機能を使用する方が簡単ですが、UIResponderタッチ方式を使用することはできます。あなたは間違ったものを使用しています。 touchesBeganは、力が0かそれに近い可能性が非常に高い場合にのみ、タッチの開始時に力を与えることになります。タッチ全体を通して更新を取得する必要がありますので、が必要です。もちろん、あなたはタッチがあまりにも移動しているかどうかを判断しなければならない、または圧力が変化しただけなので、使いやすい理由です。UILongPressGestureRecognizer;それはあなたのためにこれを行います。

関連する問題