プログラムで複数配置したUIButtonで、どのUIButtonが押されたか判別したい

  • このエントリーをはてなブックマークに追加

条件によって数が増減するボタンなど、Storyboardを使わずにUIButtonを生成して配置したいことがあります。

SPONSOR

まず、UIButtonを作って配置します。gazouは配列で、画像ファイル名が格納されており、このgazou分だけforで繰り返しボタンを生成しています。

for(int i = 0;i<[gazou count];i++){
  UIButton *btn = [[UIButton alloc] initWithFrame:CGRectMake((i*90),0,50,50)];
  [btn setBackgroundImage:[UIImage imageNamed:[gazou objectAtIndex:i]] forState:UIControlStateNormal];
  [btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
  btn.tag = i;
  [self.view addSubview:btn];
}

今回は背景に画像を入れていて、ボタンがタップされるとactionというメソッドが動くようになっています。そして、ボタンを生成するときに、tagをつけています。このtagを使うことで、どのボタンか判別します。

-(void)action:(UIButton*)button{
    NSLog(@"%d",button.tag);
}

ボタンが押されたときにactionメソッドに飛びますが、ここでbutton.tagでどのtagか判別可能です。あとはif文などで、処理を振り分ければOKです。

iPhoneアプリ開発のTips一覧はこちら

効率のいいiOSプログラミング習得法

独学でプログラミングをはじめてもう16年。
なかなか勉強が進まない人のために記事を書きました。

フリーランスエンジニアの稼ぎ方

  • このエントリーをはてなブックマークに追加
SPONSOR

PROFILE

プロフィール

入江 慎吾/サービス開発だけで生きていく
自分のサービスだけで自由に生きる。勢いで受託開発をすべてやめて、サービスだけ作って生きていくことを決めたフリーのエンジニア。得意を教えて副業にできるMENTAを開発中! (詳しいプロフィール)
WEBサービス・アプリ開発に役立つ情報をイリテクの入江がお届けします。プログラミング、UI/UXデザイン、SNS・ブログマーケティングなど、プロダクト開発だけで自由に生きていくための実践的な情報を配信しています。

PRODUCT

イリテクで開発したプロダクト

RELATION

関連する記事

SPONSOR

TAG

タグから記事をさがす