我想簡化一個我正在研究的項目,其中有八個UILabels,並且每隔一段時間我都會根據存儲的數據將這些標籤的背景顏色更改爲不同的顏色數組。在Xcode中創建UILabels數組
目前我的代碼運行一個for循環從0到7(佔八個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.
}
還是現在,我想想,也許我能做到這一切在一個很大的打擊,由此我並不需要通過運行循環八次,但我可以直接將我的backgroundcolordata數組的內容發送到我的UILabel數組中?
任何幫助或技巧在這裏將非常感激。
您不需要圍繞代碼塊進行反引號。但是,您應該正確縮進它們。 –
Thankyou fluchtpunkt用於修復我的代碼的格式。我認爲我通過四個空格縮進來正確地完成它,但它沒有正確顯示。 – BradSlattery
簡單地將標籤存儲在初始化時創建的NSArray中有什麼問題? –