私は電卓アプリを作成していて、UIButtonを備えた独自のキーパッドを提供しています。私は削除キーを持っていますが、ユーザーがすべてを削除したい場合は、ユーザーが削除キーを何度も押し続ける必要があることを除いて、すべてが機能します。
ボタンを2秒以上押し続けると、すべてを削除する方法があるのではないかと思いました。
これを実装する最も簡単な方法は、長押しのジェスチャ認識機能を[Delete]
ボタンに接続することです。
Xcodeを使用すると、InterfaceBuilderで長押しジェスチャレコグナイザーをアタッチできます。ボタンに追加し、長押しの時間を設定し、IBOutlet
他のUIイベントを接続するのと同じ方法でハンドラーを接続します。
コードでそれを行いたい場合は、この回答がその方法を示しています。
これを処理するには、独自のタイマー関数を使用してください
-(IBAction)buttonHit {
//here start timer that fires for every 2 seconds and handle deletion method in that
}
-(IBAction)buttonReleased {
//Stop timer...
}
サブクラス化されたUIButtonで、" touchesBegan: withEvent:
" UIResponderメソッドを監視し、それが特定の時間のしきい値を超えた場合、狂ったように(つまり、" touchesEnded: withEvent
"メソッドが呼び出されるまで)削除を開始することができます。