質問

誰かが前宣言に触れたら行動をしたい 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クラスのカテゴリを追加して、メソッドを追加してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top