InterfaceBuilderでGestureRecognizerをViewとひもづける
ちょくちょくどうやるのかわからなくなるので覚え書きしておきます。
イベントメソッドを宣言
まず、Gestureイベントが発生した時に呼ばれるメソッドを宣言。
@IBAction private func didTapAttachmentImageView() {
// 何らかの処理
}
Interface Builderでの操作
- 監視したいイベントのGesture Recognizerをドラッグ&ドロップ(場所は適当で良い)
- Objectsの一覧にGesture Recognizerが追加される
-
Objectsの一覧からGesture Recognizerを選択し、Connections Inspectorを選択
Sent Actionsのselectorの右にある◯から線を引っ張り、File's Ownerでドロップ
-
IBActionで宣言されたメソッドがポップアップ表示されるので、呼びたいメソッドを選択
-
Gesture RecognizerとIBActionメソッドがひもづく
Referencing Outlet CollectionsのNew Referencing Outlet Collectionの右にある◯から線を引っ張り、イベントを監視したいViewでドロップ
-
ポップアップにgestureRecognizersと表示されるので選択
-
Gesture RecognizerとViewがひもづく
-
ViewがUILabel、UIImageViewなどは、isUserInteractionEnabledプロパティがデフォルトでfalseなのでtrueにしておく。そうしないとGestureイベントが発生しない
これでOK!
ちなみにReferencing Outlet Collectionsは複数のViewをひもづけられますが、実際は最後にひもづけたViewでのみIBActionメソッドが呼ばれるようです・・・つまり、監視したいViewの数だけGesture Recognizerを用意する必要があります。
Author And Source
この問題について(InterfaceBuilderでGestureRecognizerをViewとひもづける), 我々は、より多くの情報をここで見つけました https://qiita.com/roba4coding/items/d59100f9afc226b940ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .