[iPhone] アプリでタップや長押しを認識させるには

Photo by Yura Fresh on Unsplash
タップ操作はスマホアプリの便利な機能です。UIGestureRecognizer ではタップ、スワイプ(フリック)等々を扱えますが、まず手っ取り早くタップを扱うUITapGestureRecognizerと、長押しのUILongPressGestureRecognizerの使い方を見てみたいと思います。

Swift 5.1
Xcode 11.3.1

UIGestureRecognizer

 
SwiftUIでのタップ、長押しは以下を参照してください

https://i-app-tec.com/swiftui/gesture-recognize.html

UIGestureRecognizerには2タイプあり、1度だけ認知するものUITapGestureRecognizerと、連続して認知するものUILongPressGestureRecognizerがあります。例えばLongPressを認知した指がある一定以上の時間同じ場所にあることが条件です。もし移動した場合、LongPressはキャンセルされます。


 

 

UITapGesture

 
タップを認識する為に、UITapGestureRecognizer を使ってインスタンスを生成します。
 


 
View に インスタンスを追加します


 
selector でタップされたときに呼びだされるメソッドを登録
 
タップされた時に、メソッドが呼び出されます


 
実際のコードです、Delegate をセットします。
 
ViewController.swift


 
実際にタップして「タップ」のログが出てくれば成功です。
 

 

UILongPressGesture

 
storyboardにUILabelを置いて、紐付けします。


 
UILongPressGestureRecognizerを同様に設定すればできあがりです。
 
ViewController.swift


 
TapとLong Pressを表示するようにしてみます。
タップと長押しがそれぞれ認識されたでしょうか
 

 

References:
UIGestureRecognizer – UIKit | Apple Developer Documentation
UITapGestureRecognizer – UIKit | Apple Developer Documentation
UILongPressGestureRecognizer – UIKit | Apple Developer …


誤字脱字、意味不明などのご意見は 謙: e-mail まで
ブックマークしておくと便利です このエントリーをはてなブックマークに追加
Twitter:


シェアする

  • このエントリーをはてなブックマークに追加

フォローする