【Swift】UIButtonに設定できるイベントの種類と動作について。(Swift 2.1、XCode 7.2)
前回の記事で、ボタンを押したときにラベルの値を変更する単純なアプリを作成した。⇒「記事」
その記事のボタンとソースコードを紐付ける設定で、イベントには初期値の「Touch Up Inside」を指定した。これは、指がボタンに触れて、ボタンの近くで指を離す動作のことを表している。
要するに、ボタンをタップしたらchangeLabelメソッドが呼ばれるという設定である。
Eventに設定できる項目はたくさんあるので、本記事ではボタンで使われるイベントの種類と動作について実際のプレイ動画とともにまとめておく。
なお、動画はシュミレーターを用いた実際のプレイ動画である。は画面に指が触れていない状態、は触れている状態を表している。
Touch Down
ボタンが指に触れた瞬間にメソッドが呼び出される。ボタンから指を離すのを待たずに、すぐにアプリに反応させたいときに使える。
Touch Down Repeat
ボタンをダブルクリックしたときにメソッドが呼び出される。クリック間隔が遅い場合はダブルクリックと見なされずメソッドは呼び出されない。2回目のクリックはボタンから指を離さなくても良い。
Touch Drag Enter
ボタンを押して指を離さないままボタンの外に移動し、再びボタンのそばに戻ってきたときにメソッドが呼び出される。検証ではボタンの外では無く、ボタンよりもさらに遠くまで移動しないと反応しなかった。仕様について詳しく分かり次第追記する。
Touch Drag Exit
ボタンを押して指を離さないまま外側に移動したときにメソッドが呼び出される。これもボタンよりもさらに遠くまで移動しないと反応しない。
Touch Drag Inside
ボタンを押して指を離さないまま少しでも移動したときにメソッドが呼び出される。
Touch Drag Outside
ボタンを押して指を離さないまま遠くに移動するとメソッドが呼び出される。「Touch Drag Exit」と同じ。
Touch Up Inside
ボタンを押したあとにボタンの近くで指を離したときにメソッドが呼び出される。一番使用頻度が多く。アクションを設定するときに初期値としてこの値が設定されている。
Touch Up Outside
ボタンを押したあとにボタンの遠くで指を離したときにメソッドが呼び出される。
その他の以下のイベントはUIButtonに設定してもメソッドを呼び出すことができなかった。呼び出す方法があったとしてもボタンの機能として必要なものは無さそうだが、もし方法が分かれば追記する。
・Did End On Exit
・Editing Changed
・Editing Did Begin
・Editing Did End
・Primary Action Triggered
・Touch Cancel
・Value Changed