2011-09-28 99 views
2

看起來蘋果公司的UIToolbar和一些可以放在其上的控件(如UISegmentedControl)允許非常有限的自定義。例如,我們希望我們的工具欄,看起來像這樣的模擬:如何自定義UISegmentedControl字體顏色和UIToolbar漸變?

toolbar screenshot

然而,UIToolbar只有一個單一的tintColor和3內置barStyle值,你可以適用於它,所以我們不能獲取我們之後的漸變。有沒有像許多其他控件一樣設置背景圖像的方法?

更糟糕的是,UISegmentedControl不允許您指定字體或字體顏色。它似乎強制白色11pt Helvetica帶有陰影,而白色幾乎無法讀取,我們正在使用的光線tintColor

我不想重寫UISegmentedControl只是爲了改變文字的顏色。但是唯一的solution I've seen非常黑客 - 它會深入到子視圖的子視圖,並改變這些屬性 - 只要蘋果覺得要改變或禁用它,似乎就會停止工作。

蘋果是否真的反對我們改變我們的分段控件的文字顏色,還是有什麼我在這裏失蹤?

更新:蘋果終於增加了自定義iOS 5外觀的功能。請參閱jfortmann's answer

回答

1

您想要使用setBackgroundImage:forState:barMetrics:方法(可能在您的外觀代理上)設置背景圖像。可以使用setTitleTextAttributes:forState修改文本。最後,您需要更改setDividerImage可能狀態的分隔符:...

文檔對於圖像的外觀非常豐富。

+0

是的,這是一個很好的答案 - 但是,這些新功能僅適用於iOS 5或更高版本。我在這個問題的更新中注意到了這一點。 –