2011-08-30 57 views
1

我創建了一個UIScrollView。 我設置了尺寸,然後我嘗試添加UILabels。UIScroll及其嵌套元素

然而,標籤都是白色文本(令人討厭,因爲我必須更改每個標籤的屬性)。

有沒有辦法讓所有的標籤(從IB拖到視圖的新標籤)都有默認的黑色文字顏色?

編輯以匹配評論

我想用IB作爲盡我所能。因此,我想將UILabel從庫調色板拖到UIView。當我這樣做時,UILabel設置爲白色(默認)。我想要默認顏色爲黑色。我知道我可以通過編程來實現,但我試圖避免這種情況,除非我真的需要。

+0

感謝您的編輯 –

回答

2

有沒有簡單的方法來做到你想要的。但是你可以做的是用你想要的屬性創建一個標籤,將它存儲在繪圖板上的某個位置,但不是存儲在視圖中,然後在每次需要新標籤而不是拖動新標籤時複製它。您可以使用選項+拖動輕鬆複製。

1

是的,有一種方法。您可以循環顯示目標視圖的子視圖,例如:

UIView * targetView; 

[...] 

for(id subView in targetView.subViews){ 
    if([subView isKindOfClass:[UILabel class]]){ 
     [subView setBackgroundColor:clearColor]; 
    } 
} 
+0

無論如何改變首選項,以便拖動所有元素都有黑色文本? –

+0

你的意思是文字顏色?當然,只需設置setTextColor而不是setBackgroundColor。也許我誤解你的意思是拖了嗎?您是否僅指代您從Interface Builder「拖曳」的UILabels? – Daniel

+0

我想盡可能多地使用IB。因此,我想將UILabel從庫調色板拖到UIView。當我這樣做時,UILabel設置爲白色(默認)。我想要默認顏色爲黑色。我知道我可以通過編程來實現,但我試圖避免這種情況,除非我真的需要。 –

2

我認爲簡短答案是「不,沒有簡單的方法可以完成您所描述的內容。」

我能想到的最簡單的方法是創建所有的UILabels(默認設置爲白色文本),然後按住Control鍵並點擊全部並一次設置它們的文本顏色 - 所有其他方式都不太方便,或者基本上要求Apple開放源代碼Xcode或UIKit,以便我們可以獲得他們的內部。

0

爲什麼標籤必須來自對象庫?你可以通過從庫中拖拽一個UILable到你的視圖來獲得你想要的功能,將所有的屬性設置爲你想要的默認值,然後點擊複製(command + c)一次。現在你可以多次粘貼(命令+ v)你的UILabel特殊屬性值,IBActions和網點也將保留在copys中。

如果您打算調整比字體顏色和大小更多的屬性,那麼我會建議一種更自定義的方法,在IB中進行批量拖放工作之前,只需要最小編碼。
在Xcode中爲UILable子類,在簡單的返回方法中將所有屬性設置爲一次,並從「init」和「awakeFromNib」中調用此方法。現在回到IB並執行所有拖放操作,確保標籤是你的子類。

但是,我認爲如果你這麼做很多,尤其是如果你將來再次做類似的事情,那麼你將節省大量的時間和精力來實現這個「標籤工廠」。碼。它的代碼可能比你想象的要少,而且你可以在下一個應用中重複使用它。無論如何,這是我的2cents,好運