私は8つのUILabelsがある場所で作業している小さなプロジェクトを合理化しようとしています。これらのラベルの背景色は、配列。XcodeでUILabelsの配列を作成する
現在、私のコードでは、0から7までのforループが実行されます(8つのUILabelsを説明するため)。 forループの中で、それはこのように、新しい背景色に対応するUILabelをループの点で最大であるものを数チェックし、修正します:
for (int y = 0; y < 8; y++) {
SEL mySelect = NSSelectorFromString([backgroundColorData objectAtIndex:y]);
UIColor* myUILabelColor = nil;
if ([UIColor respondsToSelector: mySelect]){
myUILabelColor = [UIColor performSelector:mySelect];
}
switch (y) {
Label0.backgroundColor = myUILabelColor;
break;
case 1:
Label1.backgroundColor = myUILabelColor;
break;
case 2:
Label2.backgroundColor = myUILabelColor;
break;
case 3:
Label3.backgroundColor = myUILabelColor;
break;
case 4:
Label4.backgroundColor = myUILabelColor;
break;
case 5:
Label5.backgroundColor = myUILabelColor;
break;
case 6:
Label6.backgroundColor = myUILabelColor;
break;
case 7:
Label7.backgroundColor = myUILabelColor;
break;
}
は私が配置することにより、縮小コードを作成できるようにしたいと思いますこれら8 UILabels配列に、おそらくとして読み取ったコードを作成するには、次のとおりです。
for (int y = 0; y < 8; y++) {
SEL mySelect = NSSelectorFromString([backgroundColorData objectAtIndex:y]);
UIColor* myUILabelColor = nil;
if ([UIColor respondsToSelector: mySelect]){
myUILabelColor = [UIColor performSelector:mySelect];
}
// This piece of code would deal with modifying the backgroundColor of UILabel(y) within my array of UILabels.
}
それとも今、私はそれについて考えることを、私はを介して実行する必要はありませんそれによって、おそらく、私は一つの大きなヒットにそれをすべて行うことができますforループは8回ですが、私は自分のUILabel配列にbackgroundcolordata配列の内容を直接送ることができますか?
ここのヘルプやヒントは非常に高く評価されます。
コードブロックの前後にバッククォートは必要ありません。ただし、正しくインデントする必要があります。 –
私のコードの書式を修正していただきありがとうございますfluchtpunkt。私は4つのスペースでインデントして正しく作っていると思ったが、正しく出てこなかった。 – BradSlattery
初期化時に一度作成するNSArrayにラベルを格納するだけで何が問題になりますか? –