## 1.2 iOS應用解析 (iOS App Anatomy)
幾乎所有的iOS應用都應用了UIKit framework中定義的組件。了解這些基本組件的名稱、作用和功能可以幫助你在應用的界面設計過程中做出更好的決策。
[](http://isux.tencent.com/wp-content/uploads/2015/10/20151021163632758.jpg)
UIKit提供的UI組件可以大致分為以下4種類型:
* **欄****(****Bars****)**:包含了上下文信息來指引用戶他們所在的位置,以及控件來幫助用戶導航或執行操作。
* **內容視圖****(****Content Views****)**:包含了應用的具體內容以及某些操作行為,比如滾動、插入、刪除、排序等等。
* **控件****(****Controls****)**:用于執行操作或展示信息。
* **臨時視圖****(****Temporary Views****)**:短暫出現給予用戶重要信息或提供更多的選擇和功能。
UIKit除了定義UI組件元素,還定義對象如何實現功能,例如手勢識別、繪圖、輔助功能和打印支持。
從編程的角度來看,UI組件元素其實是視圖的子類,因為它們繼承了UIView。視圖能繪制屏幕內容并知道用戶何時在其范圍內觸屏。視圖的所有類型有:控件(比如按鈕和滑塊)、內容視圖(比如集合視圖和表格視圖),以及臨時視圖(如警告提示和動作菜單)。
要在應用中管理一組或者一系列的視圖,通常需要使用視圖控制器。它能協調視圖的內容顯示,實現與用戶交互的功能并能在不同屏幕內容之間切換。比如,“設置”使用了一個導航控制器來展示其視圖層級。
這里有一個關于視圖與視圖控制器如何結合并呈現iOS應用的UI的例子,如圖。
[](http://isux.tencent.com/wp-content/uploads/2015/10/201510191619260.png)
盡管開發者認為真正起到作用的是視圖和視圖控制器,但一般用戶感知到的iOS應用是不同屏幕內容的集合。從這個角度來看,在應用里,屏幕內容一般對應于一個獨特的視覺狀態或者模式。
>[info] **注:**一個iOS應用程序包含一個窗口。但是,不同于計算機程序中的窗口,iOS窗口沒有可見的部分并且不能在屏幕上被移動到另一個位置。很多iOS應用程序只有一個窗口;可以支持外部顯示設備器的應用程序可以有不止一個窗口。
在*iOS Human Interface Guidelines*中,屏幕(*screen*)這個詞和大部分用戶理解的一樣。作為一個開發者,你也許需要閱讀一下其他與[UIscreen](https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIScreen_Class/index.html#//apple_ref/occ/cl/UIScreen)相關的章節,這樣你可以更好的了解如何關聯外部屏幕。
- (1):UI設計基礎
- 1.1 為iOS而設計(Designing for iOS)
- 1.2 iOS應用解析 (iOS App Anatomy)
- 1.3 適應性和布局(Adaptivity and Layout)
- 1.4 啟動與停止(Starting and Stopping)
- 1.5 導航(Navigation)
- 1.6 模態情境(Modal Contexts)
- 1.7 交互性與反饋(Interactivity and Feedback)
- 1.8 動畫(Animation)
- 1.9 品牌推廣(Branding)
- 1.10 顏色與字體(Color and Typography)
- 1.11 圖標和圖形(Icons and Graphics)
- 1.12 術語和措辭(Terminology and Wording)
- 1.13 與iOS的整合(Integrating with iOS)