uilabelにタッチ方法はありますか?
-
27-10-2019 - |
質問
誰かが前宣言に触れたら行動をしたい UILabel
, 、 何かのようなもの:
if (label is touched) {
my actions;
}
それを行う方法/方法はありますか?
解決
ジェスチャー認識者を使用できます。
- (void)someSetupMethod {
// ...
label.userInteractionEnabled = YES;
UITapGestureRecognizer *tapGesture = \
[[UITapGestureRecognizer alloc]
initWithTarget:self action:@selector(didTapLabelWithGesture:)];
[label addGestureRecognizer:tapGesture];
[tapGesture release];
}
- (void)didTapLabelWithGesture:(UITapGestureRecognizer *)tapGesture {
// ...
}
他のヒント
デフォルトでは、 UILabel
タッチ入力を受け入れるように構成されていません。ただし、aを使用する場合 UIButton
代わりに、カスタムの外観になるように設定すると、(シングルラインの)ラベルのように見せて、タッチイベントに応答させることができます。
サブクラス化して、タッチメソッドをオーバーライドできます。おそらくオーバーライドしたいのです touchesEnded:withEvent:
.
または、uibuttonを使用するだけです。
userInteractionEnableが[はい]に設定されていることを確認する必要があります。 touchesBegan:withEvent:
uilabelクラスのカテゴリを追加して、メソッドを追加してください。
所属していません StackOverflow