PCH文件是一個(gè)預(yù)編譯文件,pch頭文件的內(nèi)容能夠被項(xiàng)目中所有其他源文件共享和訪問(wèn)
1.存放一些全局的宏(整個(gè)項(xiàng)目都要用的上的)
2.用來(lái)包含一些全部的頭文件
3.能夠自動(dòng)打開(kāi)或關(guān)閉日志輸出功能
其中可用來(lái)存儲(chǔ)共享的信息:其他頁(yè)面需要導(dǎo)入的頭文件以及屏幕寬度,高度設(shè)置,需要的第三方庫(kù)頭文件等
創(chuàng)建完成后還要進(jìn)行相關(guān)的配置,

command +b 會(huì)進(jìn)行預(yù)編譯,預(yù)編譯好的pch文件,會(huì)被緩存起來(lái),提高編譯速度
TabbarController和navigationController
initialize方法,可以利用他,在類使用前可以進(jìn)行一些預(yù)處理,Apple文檔中說(shuō)明的load和initialize的區(qū)別:load是只要是類所在的文件被引用就會(huì)被調(diào)用,而initialize是在類或其子類的第一個(gè)方法被調(diào)用之前調(diào)用,所以如果類沒(méi)有被引用進(jìn)項(xiàng)目,就不會(huì)有l(wèi)oad調(diào)用,但即使類文件被引用,但是沒(méi)有使用,則initialize也不會(huì)被調(diào)用
他的相同點(diǎn)在于:方法只會(huì)被調(diào)用一次
在這兩個(gè)controller中
initialize{
在這里可以設(shè)置一些靜態(tài)屬性

appearance
UIAppearance設(shè)置一些UI的全局效果,這樣很方便實(shí)現(xiàn)UI的自定義效果,有能最簡(jiǎn)單的實(shí)現(xiàn)統(tǒng)一界面風(fēng)格,注意:
1.控件遵守了UIAppearance協(xié)議,才能對(duì)控件進(jìn)行appearance設(shè)置
2、只有被UI_APPEARANCE_SELECTOR這個(gè)宏修飾的屬性才能使用appearance進(jìn)行設(shè)置,其他屬性則不具備該功能
3、appearance設(shè)置需要在該控制顯示之前設(shè)置完成,否則可能無(wú)效
setTitleTextAttributes設(shè)置title的文字屬性
UINavigationBar提供了titleTextAttributes來(lái)簡(jiǎn)單設(shè)置title的樣式
titleTextAttributes是一個(gè)NSDictionary類型,包含的固定的屬性名稱,可以用來(lái)設(shè)置title的樣式,指定的屬性keys
聲明于NSString UIKit Additions Reference擴(kuò)展中,包括:
NSString *constUITextAttributeFont,設(shè)置title的文字字體;
NSString*constUITextAttributeTextColor,設(shè)置title的文字顏色;
NSString*constUITextAttributeTextShadowColor,設(shè)置titlewz的陰影顏色;
NSString*constUITextAttributeTextShadowOffset,設(shè)置titlewz陰影的平移量 ;
imageWithRenderingMode是UIImage的渲染模式
tint color是UIColor的一個(gè)屬性,代表對(duì)象的顏色風(fēng)格,所有繼承自UIView的對(duì)象都具有tintColor屬性,個(gè)別對(duì)象如UIBarButtonItem等也具有該屬性。
你可以設(shè)置一個(gè)UIImage在渲染時(shí)是否使用當(dāng)前視圖的Tint Color。UIImage新增了一個(gè)只讀屬性:renderingMode,對(duì)應(yīng)的還有一個(gè)新增方法:imageWithRenderingMode:,它使用UIImageRenderingMode枚舉值來(lái)設(shè)置圖片的renderingMode屬性。
UIImageRenderingModeAutomatic? // 根據(jù)圖片的使用環(huán)境和所處的繪圖上下文自動(dòng)調(diào)整渲染模式。
UIImageRenderingModeAlwaysOriginal? // 始終繪制圖片原始狀態(tài),不使用Tint Color。
UIImageRenderingModeAlwaysTemplate? // 始終根據(jù)Tint Color繪制圖片,忽略圖片的顏色信息。
UInavigationController的一般使用(項(xiàng)目中都是自定義使用)
如果使用系統(tǒng)自帶的NavigationController,可能會(huì)造成許多意想不到的問(wèn)題,比如說(shuō)返回手勢(shì)的失效,NavigationBar顏色設(shè)置的不一致(由于透明度造成),或者是當(dāng)NavigationController嵌套在UITabbarController中使用時(shí),在push過(guò)程中,tabor何時(shí)消失的不確定等等問(wèn)題,所以我們經(jīng)常使用自定義的NavigationController來(lái)控制一組控制器,過(guò)程如下:
1.繼承UINavigationController來(lái)實(shí)現(xiàn)自己的NavigationController。
2.解決返回手勢(shì)失敗的問(wèn)題。
3.解決NavigationBar顏色設(shè)置不一致的問(wèn)題。
4.解決push時(shí)隱藏Tabbar。
5.設(shè)置整個(gè)NavigationController狀態(tài)欄的樣式,注意:在iOS7之后,修改狀態(tài)欄樣式的方法不被提供了,而是改為了控制器自己重寫(xiě)方法
- (UIStatusBarStyle)preferredStatusBarStyle;
來(lái)實(shí)現(xiàn)。但是如果控制器被NavigationController所管理,那么該方法只會(huì)調(diào)用一次,即調(diào)用棧底層的控制器的該方法,其他控制器的該方法會(huì)被截?cái)?。(還有的一些設(shè)置http://www.itdecent.cn/p/9bcd6a405ef3)