最近發(fā)現(xiàn)做界面的時(shí)候拒名,有時(shí)會(huì)忘記某種控件的顏色怎么設(shè)置,需要去網(wǎng)上進(jìn)行搜索雁佳,所以寫(xiě)下這篇文章糖权。
一方面是收藏起來(lái)自己查閱星澳,一方面是分享給大家。目標(biāo)是有了這篇文章腿堤,不用再去搜索和顏色設(shè)置有關(guān)的內(nèi)容。
下面進(jìn)入正題
導(dǎo)航欄
/* 全局設(shè)置 */
// 標(biāo)題顏色
// 如果需要設(shè)置字體就在字典中加入 [UIFont fontWithName:@"Hiragino Sans GB" size:14]
[[UINavigationBar appearance] setTitleTextAttributes:
@{NSForegroundColorAttributeName:[UIColor whiteColor]}];
// 導(dǎo)航欄背景顏色
[[UINavigationBar appearance] setBarTintColor:[UIColor whiteColor]];
// 導(dǎo)航欄返回按鈕笆檀、自定義UIBarButtonItem顏色
[[UINavigationBar appearance] setTintColor:[UIColor blackColor]];
/* 單獨(dú)設(shè)置 */
// 導(dǎo)航欄標(biāo)題顏色
self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor whiteColor]};
// 導(dǎo)航欄背景顏色
self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
// 導(dǎo)航欄返回按鈕、自定義UIBarButtonItem顏色
self.navigationController.navigationBar.tintColor = [UIColor blackColor];
狀態(tài)欄
進(jìn)入 Targets -> General -> Status Bar Style盒至,可以設(shè)置 黑色(默認(rèn)) 和 白色。
如果需要精確控制不同頁(yè)面的顏色枷遂,還是需要代碼設(shè)置。
首先給 info.plist
加上這句話(huà)
// View controller-based status bar appearance
// 加入這個(gè)參數(shù)箫老,我們前面方法的設(shè)置就會(huì)失效
// 接下來(lái)就可以使用代碼進(jìn)行設(shè)置了
/* 全局設(shè)置 */
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleLightContent;
/* 單獨(dú)設(shè)置 */
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
// 細(xì)心的朋友讀者可能會(huì)疑問(wèn),為什么這次不能用
self.navigationController.preferredStatusBarStyle = UIStatusBarStyleLightContent;
答案很簡(jiǎn)單耍鬓,仔細(xì)看報(bào)錯(cuò)就知道這是一個(gè) readonly
的屬性流妻,所有我們直接重寫(xiě)他的 set 方法牲蜀。
TabBar
/* 全局設(shè)置 */
// TabBar背景顏色
[UITabBar appearance].barTintColor = [UIColor whiteColor];
/* 單獨(dú)設(shè)置 */
// TabBar背景顏色
self.tabBarController.tabBar.barTintColor = [UIColor whiteColor];
TabBar圖標(biāo)顏色
不用寫(xiě)亂七八糟的代碼绅这,直接到 Assets.xcassets 里把圖片的屬性 Render 設(shè)置為 Original Image 就可以讓顏色按照?qǐng)D片的來(lái)涣达,而不會(huì)選中變藍(lán)了证薇。
Button
// 字體顏色
// 有人可能會(huì)誤用這兩個(gè)錯(cuò)誤的方法
// 錯(cuò)誤1:[button.titleLabel setTextColor:[UIColorblackColor]];
// 錯(cuò)誤2:button.titleLabel.textColor = [UIColor redColor];
// 正確
[button setTitleColor:[UIColor blackColor]
forState:UIControlStateNormal];
// 邊框顏色
// 默認(rèn)沒(méi)有邊框,第一行是設(shè)置線(xiàn)條浑度,第二行重點(diǎn)在于layer的顏色要用CGColor
button.layer.borderWidth = 2.0;
button.layer.borderColor = [UIColor blackColor].CGColor;
TextField
// placeholder顏色設(shè)置
textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:@"placeHoldtext" attributes:@{NSForegroundColorAttributeName: [UIColor redColor]}];
AttributedString
// 初始化NSMutableAttributedString
NSMutableAttributedString *str = [[NSMutableAttributedString alloc] initWithString:@"Using NSAttributed String"];
// 顏色設(shè)置
[str addAttribute:NSForegroundColorAttributeName
value:[UIColor blueColor]
range:NSMakeRange(0,5)];
[str addAttribute:NSForegroundColorAttributeName
value:[UIColor redColor]
range:NSMakeRange(6,12)];
[str addAttribute:NSForegroundColorAttributeName
value:[UIColor greenColor]
range:NSMakeRange(19,6)];
// 字體設(shè)置
[str addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Arial-BoldItalicMT" size:30.0]
range:NSMakeRange(0, 5)];
[str addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"HelveticaNeue-Bold" size:30.0]
range:NSMakeRange(6, 12)];
[str addAttribute:NSFontAttributeName
value:[UIFont fontWithName:@"Courier-BoldOblique" size:30.0]
range:NSMakeRange(19, 6)];
// 把AttributedString賦值給Label
attrLabel.attributedText = str;
通用部分
// 字體顏色 適用于Label箩张、TextField甩骏、TextView等
label.textColor = [UIColor whiteColor];
textField.textColor = [UIColor yellowColor];
textView.textColor = [UIColor yellowColor];
// 背景顏色 基本都使用
someView.backgroundColor = [UIColor whiteColor];
工具
系統(tǒng)自帶的測(cè)色工具,位置在 應(yīng)用程序 -> 實(shí)用工具( Launchpad 里叫其他) -> 數(shù)碼測(cè)色計(jì)
使用方法:
打開(kāi)后指向你想測(cè)色的地方即可顯示他的 RGB 色饮笛,以這個(gè) Switch 舉個(gè)例子。
我們?cè)O(shè)置完rgb色后和你想要的略有差別摄狱。這里提供一個(gè)解決辦法。設(shè)置顏色的時(shí)候无午,點(diǎn)擊右邊的小齒輪,選擇 sRGB指厌。
幾種常用的列舉的差不多了踊跟。不完整的地方大家可以提出來(lái),我會(huì)對(duì)這個(gè)文章進(jìn)行更新商玫。