從iOS9開始的常見報(bào)錯
Application windows are expected to have a root view controller at the end of application launch
- 從iOS9開始, 在
程序啟動完畢那一刻
顯示出來的窗口必須
要設(shè)置根控制器
應(yīng)用程序的圖標(biāo)
- 舊項(xiàng)目中的圖標(biāo)只要符合1個條件即可
- 圖片名叫做Icon.png
有些圖片顯示出來會自動渲染成藍(lán)色
比如
- 設(shè)置tabBarItem的選中圖片
vc.tabBarItem.selectedImage = image;
- 設(shè)置UIButtonTypeSystem樣式按鈕的image時(shí)
UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
[btn setImage:image forState:UIControlStateNormal];
解決方案
- 再次產(chǎn)生一張不會進(jìn)行渲染的圖片
// 加載圖片
UIImage *tempImage = [UIImage imageNamed:@"tabBar_essence_click_icon"];
// 產(chǎn)生一張不會進(jìn)行自動渲染的圖片
UIImage *selectedImage = [tempImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
vc.tabBarItem.selectedImage = selectedImage;
-
直接在xcassets文件中配置
設(shè)置TabBarItem的文字屬性
- 直接設(shè)置每一個tabBarItem對象
// 普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[vc.tabBarItem setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
// 選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];
[vc.tabBarItem setTitleTextAttributes:selectedAttrs forState:UIControlStateSelected];
// 字典中用到的key
1.iOS7之前(在UIStringDrawing.h中可以找到)
- 比如UITextAttributeFont\UITextAttributeTextColor
- 規(guī)律:UITextAttributeXXX
2.iOS7開始(在NSAttributedString.h中可以找到)
- 比如NSFontAttributeName\NSForegroundColorAttributeName
- 規(guī)律:NSXXXAttributeName
- 通過UITabBarItem的appearance對象統(tǒng)一設(shè)置
/**** 設(shè)置所有UITabBarItem的文字屬性 ****/
UITabBarItem *item = [UITabBarItem appearance];
// 普通狀態(tài)下的文字屬性
NSMutableDictionary *normalAttrs = [NSMutableDictionary dictionary];
normalAttrs[NSFontAttributeName] = [UIFont systemFontOfSize:14];
normalAttrs[NSForegroundColorAttributeName] = [UIColor grayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateNormal];
// 選中狀態(tài)下的文字屬性
NSMutableDictionary *selectedAttrs = [NSMutableDictionary dictionary];
selectedAttrs[NSForegroundColorAttributeName] = [UIColor darkGrayColor];
[item setTitleTextAttributes:normalAttrs forState:UIControlStateSelected];
項(xiàng)目的圖片資源
- 可以利用一個Mac軟件解壓
顏色相關(guān)的一些知識
- 顏色的基本組成
- 一種顏色由N個顏色通道組成
- 顏色通道
- 1個顏色通道占據(jù)8bit
- 1個顏色通道的取值范圍
- 10進(jìn)制 : [0, 255]
- 16進(jìn)制 : [00, ff];
- 常見的顏色通道
- 紅色 red R
- 綠色 green G
- 藍(lán)色 blue B
- 透明度 alpha A
- R\G\B一樣的是灰色
- 顏色的種類
- 24bit顏色
- 由R\G\B組成的顏色
- 常見的表示形式
- 10進(jìn)制(
僅僅是用在CSS
)- 紅色 : rgb(255,0,0)
- 綠色 : rgb(0,255,0)
- 藍(lán)色 : rgb(0,0,255)
- 黃色 : rgb(255,255,0)
- 黑色 : rgb(0,0,0)
- 白色 : rgb(255,255,255)
- 灰色 : rgb(80,80,80)
- 16進(jìn)制(
可以用在CSS\android
)- 紅色 : #ff0000 #f00
- 綠色 : #00ff00 #0f0
- 藍(lán)色 : #0000ff #00f
- 黃色 : #ffff00 #ff0
- 黑色 : #000000 #000
- 白色 : #ffffff #fff
- 灰色 : #979797
- 10進(jìn)制(
- 32bit顏色
- 由R\G\B\A組成的顏色
- 常見的表示形式
- 10進(jìn)制(
僅僅是用在CSS
)- 紅色 : rgba(255,0,0,255)
- 綠色 : rgba(0,255,0,255)
- 藍(lán)色 : rgba(0,0,255,255)
- 黃色 : rgba(255,255,0,255)
- 黑色 : rgba(0,0,0,255)
- 白色 : rgba(255,255,255,255)
- 16進(jìn)制(#AARRGGBB,
僅僅是用在android
)- 紅色 : #ffff0000
- 綠色 : #ff00ff00
- 藍(lán)色 : #ff0000ff
- 黃色 : #ffffff00
- 黑色 : #ff000000
- 白色 : #ffffffff
- 10進(jìn)制(
- 24bit顏色
PCH文件可能引發(fā)的錯誤
- 解決方案
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
/*** 如果希望某些內(nèi)容能拷貝到任何源代碼文件(OC\C\C++等), 那么就不要寫在#ifdef __OBJC__和#endif之間 ***/
/***** 在#ifdef __OBJC__和#endif之間的內(nèi)容, 只會拷貝到OC源代碼文件中, 不會拷貝到其他語言的源代碼文件中 *****/
#ifdef __OBJC__
#endif
/***** 在#ifdef __OBJC__和#endif之間的內(nèi)容, 只會拷貝到OC源代碼文件中, 不會拷貝到其他語言的源代碼文件中 *****/
#endif
在Build Setting中配置宏
- 如果項(xiàng)目中有些宏找不到, 可能是配置在Build Setting中
注意點(diǎn):宏的名字不能全部是小寫字母
如果宏的名字全部是小寫, 會出現(xiàn)以下錯誤