低層次框架提供IOS的基本服務(wù)和技術(shù),高層次框架建立在低層次框架之上用來提供更加復(fù)雜的服務(wù)和技術(shù),較高級的框架向較低級的結(jié)構(gòu)提供面向?qū)ο蟮某橄蟆?br />
在開發(fā)應(yīng)用時應(yīng)盡可能使用較高級的框架。如果要開發(fā)的國內(nèi)在高層框架中沒有提供,你也可以使用較低層框架和技術(shù)。
Foundation和 UIKit框架是應(yīng)用編程用到的兩個主要的框架,能夠滿足大多數(shù)應(yīng)用程序的開發(fā)需求。
UIKit框架提供的類,用于創(chuàng)建基于觸摸的用戶界面。所有 iOS 應(yīng)用程序都是基于 UIKit, 沒有這個框架,就無法交付應(yīng)用程序。UIKit提供應(yīng)用程序的基礎(chǔ)架構(gòu),用于在屏幕上繪圖、處理事件,以及創(chuàng)建通用用戶界面及其中元素。UIKit還通過管理屏幕上顯示的內(nèi)容,來組織應(yīng)用程序。
Foundation框架為所有應(yīng)用程序提供基本的系統(tǒng)服務(wù)。應(yīng)用程序以及 UIKit和其他框架,都是建立在 Foundation 框架的基礎(chǔ)結(jié)構(gòu)之上。 Foundation框架提供許多基本的對象類和數(shù)據(jù)類型,使其成為應(yīng)用程序開發(fā)的基礎(chǔ)。它還制定了一些約定(如用于取消分配等任務(wù)),使代碼更加一致,可復(fù)用性更好。
CocoaTouch Layer包含創(chuàng)建ios應(yīng)用關(guān)鍵的框架。該層包含的框架定義應(yīng)用的外觀,也提供基本的應(yīng)用基礎(chǔ)和關(guān)鍵的技術(shù)支持,例如多任務(wù)、觸摸輸入、推送通知和許多其它的高級系統(tǒng)服務(wù)。在開發(fā)應(yīng)用時,應(yīng)當(dāng)首先研究該層的技術(shù)和技術(shù)看是否能夠滿足需要。
Cocoa Touch Layer包含如下關(guān)鍵技術(shù)
1).AirDrop
AirDrop允許用戶與附近設(shè)備共享圖片、文檔、urls鏈接以及其它種類的數(shù)據(jù)。
2)、Text Kit
TextKit是處理文本和排版的一個全功能、高級別的類集合。使用Text Kit你能在段落、列或者頁上對帶有風(fēng)格的文本進(jìn)行布局;也能在任意區(qū)域(如圖形)周圍布局流動的文本;還能用它來管理多種字體。
開發(fā)應(yīng)用時應(yīng)該首先考慮使用Text Kit來進(jìn)行文本呈現(xiàn),而不是Core Text。Text Kit與所有UIKit中的基于文本的控制集成允許應(yīng)用更容易地創(chuàng)建、編輯、顯示和存儲文本。
3)、UIKit Dynamics
UIKit dynamics用來為符合UIDynamicItem協(xié)議的UIView對象或其它對象規(guī)定動畫行為。通過在應(yīng)用的UI中集成真實世界行為和特性進(jìn),動畫行為為應(yīng)用提供了一種增強(qiáng)用戶體驗的方式。
4)、Multitasking
在ios中多任務(wù)用來設(shè)計來使電池使用時間最大化。
5)、Auto Layout
自動布局幫助你使用非常少的代碼來建立動態(tài)接口。
使用AutoLayout定義如何在用戶接口上布局元素的規(guī)則,這些規(guī)則表達(dá)了視圖類之間的關(guān)系,如規(guī)定一個按鈕總是處于它的父窗口的左邊緣20個點。
在Auto Layout中使用的實體是被稱為constraints的Objective-C對象。
6)、Storyboards
串聯(lián)圖 是設(shè)計應(yīng)用用戶接口的推薦方式。串聯(lián)圖讓你在一個地方就能夠設(shè)計全部的用戶接口,方便在一個位置看到所有的視圖和視圖控制器以及理解它們是如何一起工作的。串聯(lián)圖的一個重要的部分是定義segues(segues是從一個視圖控制器到另一個的轉(zhuǎn)換)。這些轉(zhuǎn)換代表用戶接口之間的交互。你可以使用XCOE來可視的定義這些轉(zhuǎn)換或者通過編程啟動它們。
你能使用一個單串聯(lián)圖文件來存儲所有的應(yīng)用視圖控制器和視圖,或者使用多個視圖串聯(lián)圖文件來組織用戶接口。
在應(yīng)用建立時間,Xcode讀取串聯(lián)圖文件的內(nèi)容并把它分成多個能獨立加載的離散的片斷,以便獲得更好的性能。UIKit框架提供了相應(yīng)的類來從程序中存取一個串聯(lián)圖的內(nèi)容。
7)、UI State Preservation
UI狀態(tài)保存能夠使應(yīng)用表現(xiàn)的一直運行,從而為用戶提供無縫的體驗。如果系統(tǒng)遇到內(nèi)存壓力,系統(tǒng)可能安靜地強(qiáng)制停止一個或多個后臺應(yīng)用。
當(dāng)應(yīng)用從前臺移到后臺時,該服務(wù)能保存應(yīng)用的視圖和視圖控制器的狀態(tài)。在下次應(yīng)用重新啟動時,能夠使用先前保存的狀態(tài)信息來恢復(fù)視圖和視圖控制器到它們先前的配置,使應(yīng)用表現(xiàn)得好像一直在運行。
8)、Apple Push Notification Service
蘋果的推送通知服務(wù)提供了一種提示用戶關(guān)于新信息的方式,即使應(yīng)用當(dāng)前不在激活運行狀態(tài)。
使用該服務(wù),你能推送文本通知,在應(yīng)用圖標(biāo)上增加一個標(biāo)記或者在任意時間觸發(fā)聲音提示。
這些消息讓用戶知道他們應(yīng)該打開應(yīng)用來接收相關(guān)信息。自Ios7開始,你甚至能推送無聲的通知來讓應(yīng)用知道有了新的內(nèi)容可以下載。
為了使用IOS應(yīng)用的推送通知,用戶需要做兩部分的工作。首先應(yīng)用必須登記該通知服務(wù)以及在通知被提交時處理相關(guān)的通知數(shù)據(jù)。第二,你必須提供一個服務(wù)端的進(jìn)程來產(chǎn)生通知。
服務(wù)端的進(jìn)程可以使用你自己的本地服務(wù)器或者使用蘋果的推送通知服務(wù)。
9)、Local Notifications
本地通知作為推送通知機(jī)制的補(bǔ)充,可以給應(yīng)用提供一種不依賴外部服務(wù)器產(chǎn)生本地通知的方式。
運行在后頭的應(yīng)用能使用本地通知作為當(dāng)重要的事件發(fā)生時引起用戶注意的一種方式。例如,運行在后臺的導(dǎo)航應(yīng)用能使用本地通知來提示用戶什么時間該轉(zhuǎn)彎了。
應(yīng)用也能調(diào)度本地通知在將來的時間提交以及使那些通知在應(yīng)用不運行也能被提交。
本地通知的一個優(yōu)點是它們與你的應(yīng)用是獨立的。在一個通知已被調(diào)度,系統(tǒng)管理它的提交。另外當(dāng)通知被提交時你的應(yīng)用甚至不必運行。
10)、Gesture Recognizers
手勢識別用來檢測通常類型的手勢。由于手勢識別使用與系統(tǒng)檢測手勢相同的試探方法,因此手勢識別為應(yīng)用提供了一個一致的行為。為了使用它,你能在你的視圖上附加手勢識別功能和并給它提供一個在手勢出現(xiàn)時要執(zhí)行的方法。
手勢識別跟蹤原始的觸摸事件和確定它們什么時候與想要的手勢匹配。
11)、System View Controllers
許多系統(tǒng)框架為標(biāo)準(zhǔn)的系統(tǒng)接口定義了視圖控制器。只要有可能,為了呈現(xiàn)一致的用戶體驗,就應(yīng)該使用系統(tǒng)提供的視圖控制器而不是創(chuàng)建一個新的。