私は3Dタッチスクリーンの圧力機能(例:touch.force
)を使いたい小さなプロジェクトに取り組んでいます。私はそれをしたいようUICollectionView:セルのタップの力を測定する
今、私は私のViewControllerに力を測定することができ、それが動作している:私は絵を提示1 UIImageView
を持って
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?) {
if let touch = touches.first {
if traitCollection.forceTouchCapability == UIForceTouchCapability.available {
// 3D Touch capable
let force = touch.force
print("Force: " + force.description)
}
}
}
。透明なセルと有色のセルを含むオーバレイとしてカスタムUICollectionView
も使用します。私が達成しようとしているのは、両方の力を測定し、押されたときに細胞の色を取り除くことができるようにすることですが、私は両方を行うことに失敗しています。力を測定するか、UICollectionViewのセルの色を変更することができますが、両方を行うことはできません。
解決策は、UICollectionViewのtouches
を階層の次のビューに転送することです。しかし、別の解決策は、カスタム内のセルの力およびレジスタタップの両方を測定することであり得る。UICollectionView
。
私の質問は、私の提案されたソリューションのいずれかが良いですか?もしそうなら、どのように達成するのですか?
2日後に私が学んだのは、 'touchesMoved'はUICollectionViewでも実装できる有効なUIViewメソッドです。私は、ViewControllerだけが 'touchesBegan'メソッドをオーバーライドできることを認識していませんでした。 – Kevin