WEBOPIXEL

iOSで複数配置したUILabelにアクセスする方法

Posted: 2014.09.17 / Category: iOS 

UILabelを一つ一つ宣言して使うのではなく、forなどで複数設置した時があります。
そんなとき個々のUILabelにアクセスする方法をご紹介します。
UIViewを継承しているクラスならUILabelでなくても基本同じようにできるはずです。

Sponsored Link

iOS7 / Objective-C

配列にに入れる場合

UILabel作成と同時にあらかじめ作成した配列に入れる。

Objective-C

NSMutableArray* labels = [NSMutableArray array];
for (int i=0; i<5; i++) {
UILabel* hogeLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 40*i+30, 150, 30)];
hogeLabel.text = @"hoge";
[self.view addSubview:hogeLabel];
labels[i] = hogeLabel;
}
    

アクセスすときは、宣言したUILabelに一旦入れる。

Objective-C

UILabel* tempLabel = labels[1];
tempLabel.text = @"fuga";
    

tagを使用してアクセスする方法

tagの場合はループ時、tagにインデックスを入れておく。
tagには1からの整数しか入らないので、「i+1」してます。

Objective-C

for (int i=0; i<5; i++) {
UILabel* hogeLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 40*i+30, 150, 30)];
hogeLabel.text = @"hoge";
hogeLabel.tag = i+1;
[self.view addSubview:hogeLabel];
}
    

tagを検索するには「viewWithTag」を使う。
今回は self.view に配置したので [self.view viewWithTag:tag番号] って書きます。

Objective-C

UILabel* tempLabel = (UILabel*)[self.view viewWithTag:1];
tempLabel.text = @"fuga";