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

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

Swift 5.1
Xcode 11.3.1

UIGestureRecognizer

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

Viewのタップや長押しを認識してアクションを起こす機能が Modifiers の onTapGesture, onLongPressG...

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 …

一人でアプリ開発の限界を感じたら

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンライン・スクールがいいと思います。


TECH ACADEMY
自宅にいながら1時間でプログラミング基礎を習得

こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン



とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約20,000名の受講生と300社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


Play Ground
本業と並行してやるには月額制なのがありがたいです。


無料で転職まで
これはiOSアプリ限定ではありませんが無料です
その代わり就職することを前提にしたスクールで「エンジニアになって職を得たい」のであれば手っ取り早いかもしれません


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


シェアする

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

フォローする