UILabelとUIImageViewを含むカスタムUIViewがあります。 UIViewをクリック可能にするにはどうすればよいですか?ユーザーがUIViewを押すのを開始するたびにUIViewの背景を変更したい。ユーザーがボタンを上げると色が元に戻ります。私はまた、クリックイベントを処理する必要があります。UIViewをクリック可能にする方法
8
A
答えて
20
-(void)addGestureRecogniser:(UIView *)touchView{
UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(changecolor)];
[touchView addGestureRecognizer:singleTap];
DBLog(@"ADD GESTURE RECOGNIZER");
}
-(void)changecolor{
// do something
}
1`)これはコードスニペットで、ここでパラメータをクリックしてクリック可能にする必要があります。
4
スウィフト2.0バージョン:
// Add tap gesture recognizer to View
let tapGesture = UITapGestureRecognizer(target: self, action: Selector("onClickOnView"))
tapGesture.delegate = self
self.view.addGestureRecognizer(tapGesture)
func onClickOnView(){
print("You clicked on view..")
}
スウィフト3.0バージョンUIGestureRecognizerDelegateを実装することを忘れないでください:
// Add tap gesture recognizer to View
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickView(_:)))
tapGesture.delegate = self
view.addGestureRecognizer(tapGesture)
func clickView(_ sender: UIView) {
print("You clicked on view")
}
7
もう一つの方法は、フックアップすることですthストーリーボード/ Interface Builderを使用したジェスチャー認識機能。
非常に簡単で、コードを使用するよりも洗練されています。
ジェスチャー認識ツールを設定するためのステップバイステップのリファレンスです。ここでは上記のリンクからのステップアウトリスト
::ちょうどGesture Recognizer
を検索Object library
から、あなたのシーンに
- ドラッグタップジェスチャー認識器オブジェクトを、との上に置きますUIView。
- 食事中のタップジェスチャー認識ツール
scene dock
が表示されます。 Sceneドックは、First Responder、ExitなどがあるストーリーボードのView Controllerの一番上にあります。 - シーンドックのジェスチャ認識器からコード表示にControlドラッグしてコードにタップジェスチャ認識器を接続します。 UIButtonアクションの場合と同じようにアクションダイアログを塗りつぶします。
- 完了です! :D
ご不便をおかけして申し訳ございませんが、私はiOS開発の初心者です。 – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
私は通常、クリック可能なUIView –
を模倣するためにタップジェスチャーでそれを行う[どのようにUIViewにタッチイベントを追加するには?](http://stackoverflow.com/questions/4660371/how-to-add-a - タッチイベントからタッチまで) –