UILabel
誰かが事前に宣言された に触れた場合、次のようなアクションを実行したいと思います。
if (label is touched) {
my actions;
}
それを行う方法/方法はありますか?
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
は、タッチ入力を受け入れるように構成されていません。ただし、UIButton
代わりに a を使用してカスタムの外観を設定すると、(1 行の) ラベルのように見せて、タッチ イベントに応答させることができます。
それをサブクラス化し、タッチ メソッドをオーバーライドできます。おそらくオーバーライドしたいでしょうtouchesEnded:withEvent:
。
または、UIButton を使用します。
userinteractionenabled が YES に設定されていることを確認する必要があります。touchesBegan:withEvent:
UILabel クラスのカテゴリを追加し、それにメソッドを追加するだけです。