iOS-專案配置(新專案)
1.App型別:社交、電商、視訊、娛樂、新聞
2.App開發模式
①迭代開發(原有基礎上開發)
②獨立開發
專案開發方式:①storyboard ②純程式碼
其他:需求文件、原型圖、介面文件、開發設計文件
3.Target-General配置
Display Name 展示名稱
Bundle Identifier 捆綁識別符號
Info.plist
version: AppStore版本
build: 工程的構建版本
Deployment Target : 開發所支援的最低版本
Devices: 支援的裝置(universal、iPhone、iPad)
Main Interface 入口
Device Orientation : 支援裝置方向
Status Bar Style : 設定程式啟動時的狀態列樣式(一般隱藏)
Embedded Binaries : .a 檔案
Linked Frameworks and Libraries .新增依賴庫
AppIcons and LaunchImages 設定AppIcon和啟動圖
其他配置
①啟動圖配置(LaunchScreen>LaunchImage)
/* 啟動圖配置優先順序: 優先順序:LaunchScreen > LaunchImage Xcode配置了,不起作用 刪掉 LaunchScreenFile-> LaunchScreen.storyboard 1.清空xcodew快取 2.直接刪掉程式 重新執行 如果是通過LaunchImage設定啟動介面,那麼螢幕的可視範圍由圖片決定 注意:如果使用launchImage,必須讓你的美工設定各種尺寸的啟動圖片 LaunchScreen Xcode 6 開始才有的 好處: 1.自動識別當前真機或者模擬器的尺寸 2.只要讓美工提供一個可拉伸的圖片就可以了 LaunchScreen底層實現:把launchScreen截圖,生成一張圖片,作為啟動介面 */
②專案結構搭建(框架)
UITabBarController+導航控制器
封裝:誰的事情誰管理、方便程式碼維護
③UIApplication作用
/* 1.建立UIApplication(1.開啟網頁,發簡訊,打電話 2.設定應用程式提醒數字 3.設定聯網狀態 4.設定狀態列) 2.建立AppDelegate代理物件,並且成為UIApplication代理,(監聽整個app生命週期,處理記憶體警告) 3.開啟主執行迴圈,保證程式一直執行(runloop:每一個執行緒都有runloop,主執行緒有一個runloop自動開啟) 4.載入info.plist,判斷是否指定了main.storyboard,如果指定,就會去載入 //AppDelegate設定根檢視步驟 1.建立視窗 2.設定根控制器 3.顯示視窗 */
④外掛路徑
/* 1.改外掛 -> 如何去查詢外掛 -> 外掛開發知識 -> 外掛程式碼肯定有個地方指定安裝在什麼地方 1.開啟外掛 2.搜尋plug 3.就能找到安裝路徑 */
⑤load方法和initialize方法的區別
initialize :這個方法會在第一次初始化這個類之前呼叫,我們用它來初始化靜態變數.
呼叫時機: 類似懶載入,如果沒有使用這個類,那麼系統預設不會呼叫這個方法,且預設只加載一次。(在init之前)當向該類傳送第一個訊息時,先呼叫類中的,再呼叫類別中的(類別中如果有重寫),如果該類只是引用,沒有呼叫,則不會執行initialize方法。
load :在載入類的時候就被呼叫,也就是iOS應用啟動的時候,就會載入所有的類,就會呼叫每個類的 +load方法。
呼叫時機:預設執行且在main函式之前,先呼叫類中的,再呼叫類別中的(類別中如果有重寫)
共同點:自動呼叫父類的,不需要super操作,自動呼叫且僅僅會呼叫一次(不包括外部顯示呼叫)
注意:initialize可能會執行多次
在建立子類物件時,首先要建立父類物件,所以會呼叫一次父類的initialize方法,然後建立子類時,儘管自己沒有實現initialize方法,但還是會呼叫父類的方法。
正確使用:
// In Person.m + (void)initialize { if (self == [Person class]) { NSLog(@"Initialize Person, caller Class %@", [self class]); } }
⑥Appearance
/* appearance: 1.只要遵守了UIAppearance協議,還要實現這個方法 2.哪些屬性可以通過appearance 設定,只有被UI_APPEARANCE_SELECTOR巨集修飾的屬性,才能設定 3.[UITabBarItem appearance] 預設設定全域性(先remove 然後設定appearance 最後再addSubView) [self.view removeFromSuperView]; UISwitch *switchView = [UISwitch appearance]; switchView.onTinColor = [UIColor redColor]; [[UIApplication sharedApplication].keyWindow addSubView:self.view]; */ //獲取整個程式下的TabBarItem // UITabBarItem * tabBarItem = [UITabBarItem appearance]; //開發中建議使用這種 只在某個類設定統一屬性 //iOS 9.0之前 //UITabBarItem * tabBarItem = [UITabBarItem appearanceWhenContainedIn:self, nil]; //iOS 9.0之後 UITabBarItem * tabBarItem = [UITabBarItem appearanceWhenContainedInInstancesOfClasses:@[HKTabBarController.self]]; //設定按鈕選中標題的顏色:富文字 、顏色、字型、陰影、空心、圖文混排 //建立一個描述文字屬性的字典 NSMutableDictionary * attrs = [NSMutableDictionary dictionary]; attrs[NSForegroundColorAttributeName] = kBlackColor; [tabBarItem setTitleTextAttributes:attrs forState:UIControlStateSelected];