9

UILabel で userInteractionEnabled メソッドを使用して、ラベルをボタンのように機能させる (または単にメソッドを起動する) ことができるかどうか疑問に思っています。どんな助けでも大歓迎です。乾杯!

更新 (2009 年 4 月 30 日 @1:07pm) 明確化: 標準の InfoButton があり、その横に「設定」というテキストを含むラベルを配置し、ラベルをボタンのように機能させたい (反転する)したがって、基本的には、既に定義されている showSettinsView を「infoLabel」ラベルに関連付ける必要があります; ユーザーが infoButton または infoLabel をクリックすると、メソッドが起動します。

infoButton は既に機能しており、IBAction を使用してメソッドをトリガーしています。同じメソッドを実装するためにラベルを接続する方法を知りたいです。それだけです。乾杯!

4

3 に答える 3

7

UIButton別の解決策として、 の代わりに、タイプをカスタムに設定してを使用することもできますUILabel。このようにして、2 番目のボタンは のようUILabelになり、メソッドをトリガーするように構成できますshowSettingsView

于 2010-06-16T14:40:17.533 に答える
2

2009 年 4 月 30 日の Alex に同意します。UIButton を使用したくない場合、私の提案は単なる追加です。私がそれを解決した方法は、UILabelを作成することでした

- (id)initWithFrame:(CGRect)frame
{
    label = [[UILabel alloc] initWithFrame: CGRectMake(5, 5, 20, 20)];
    ...
    [label setUserInteractionEnabled: YES];
    [self addSubview: label];
}

次に、 touchesBegan 、 touchesEnded などの touches* メソッドを次のようなものでオーバーライドできます

- (void) touchesBegan: (NSSet *) touches withEvent: (UIEvent *) event {
      UITouch *touch = [touches anyObject];
      if([touch view] == label) {
          NSLog(@"I've been touched");
       }
   }     
于 2012-04-24T15:44:56.143 に答える