0

IB でセットアップされ、コードで IBOulets に接続されたいくつかの UILabels があるとします (label1、label2、label3、label4)。

コード内でこれらの変数名をどのように作成すれば、ラベルが NSArray から取得されるループ内でそれぞれのテキストを変更できるでしょうか。

疑似コードは次のとおりです。

labelArray = [NSArray arrayWithObjects:@"this", @"array", @"has", @"a", @"random", @"amount", @"of", @"items", nil];
for (int i = 0; i < [labelArray count]; i++) 
{
    // labelx is the constructed name of the IBOutlet
    lablex.text = [labelArray objectAtIndex:i];

}

上記の「labelx」を作成するにはどうすればよいですか? これはブロックを使用して行うことができますか?

4

2 に答える 2

2

キー値コーディング (KVC) を使用できます。次のようになります。

[[self valueForKey:[NSString stringWithFormat:@"label%d", i]] setText:[labelArray objectAtIndex:i]];

詳細はこちら

于 2010-08-03T13:00:36.610 に答える
2

を使用して、ある場所で配列を初期化する必要があります

labelArray = [NSArray arrayWithObjects:@"this", @"array", @"has", nil];
uiLabelArray = [NSArray arrayWithObjects:label1,label2,label3,nil];

それから

for (int i = 0; i < [uiLabelArray count]; i++) 
{
    [uiLabelArray objectAtIndex:i].text = [labelArray objectAtIndex:i];
}
于 2010-08-03T12:45:16.390 に答える