我的問題是 - 我怎麼修改喜歡的backgroundColor,每個標籤的文字顏色任何顏色如何修改標籤的顏色IBOutletCollection
IBOutletCollection(UILabel) NSArray *smallLabels
我什麼都試過訪問使用索引數組中的每個元素。在我來說,我有10個標籤,每個標籤具有其編號從1到10
所有我做過到目前爲止在連接每個標籤的IBOutletCollection,但我有一個線索,我從來沒有在我的初始化數組碼。
在此先感謝。
我的問題是 - 我怎麼修改喜歡的backgroundColor,每個標籤的文字顏色任何顏色如何修改標籤的顏色IBOutletCollection
IBOutletCollection(UILabel) NSArray *smallLabels
我什麼都試過訪問使用索引數組中的每個元素。在我來說,我有10個標籤,每個標籤具有其編號從1到10
所有我做過到目前爲止在連接每個標籤的IBOutletCollection,但我有一個線索,我從來沒有在我的初始化數組碼。
在此先感謝。
請試試這個
for (UILabel *myLabel in self.smallLabels)
{
myLabel. backgroundColor = [UIColor greenColor];
}
現在我所有的標籤都是綠色的。非常感謝 ! – xdevx 2014-10-30 09:16:55
爲了清楚起見,你用[[_smallLabels objectAtIndex:1] backgroundColor]得到的錯誤是,當你從一個NSArray獲得一個對象時,它就是一個id。由於id對象沒有backgroundColor屬性,編譯器會引發錯誤。通過使用foreach而不是經典的for,你告訴編譯器你期望的對象是UILabel,它具有backgroundColor屬性。你也可以像這樣解決這個問題:[((UILabel *)[_ smallLabels objectAtIndex:1])backgroundColor] – Imotep 2014-10-30 09:21:25
當你告訴IB這是UILabel的集合,它只會允許你爲這個集合添加標籤,所以你不必檢查課程。 – Imotep 2014-10-30 10:00:45
好吧。我一直在思考整個一天,Finnaly找到了最適合我的解決方案。 正如我所說的,我需要訪問每個元素,而不是整個數組。
代碼:
[[_smallLabels objectAtIndex:1] setBackgroundColor:[UIColor greenColor]];
請問 - (無效)awakeFromNib方法調用? – Astoria 2014-10-30 08:48:58
將數組作爲IBOutletCollection使用時,它會自動初始化並填充視圖。您應該能夠像viewDidLoad一樣訪問它,就像所有其他網點一樣。 – Imotep 2014-10-30 08:59:59
Astoria, 是的,但我沒有在那裏放任何代碼。爲什麼? – xdevx 2014-10-30 09:02:17