2011-04-26 185 views
13

我是一個新的iphone應用程序開發人員。我想知道視圖和viewcontroller之間有什麼區別。視圖和視圖控制器

+0

的可能重複http://stackoverflow.com/questions/4669783/what-is-the-difference-between-view和viewcontroller-in-iphone http://stackoverflow.com/questions/3658727/difference-between-view-and-view-controller-technically – Jhaliya 2011-04-26 10:26:42

+0

重複http://stackoverflow.com/questions/4669783/what- is-the-difference-between-view-and-viewcontroller-in-iphone – 2011-04-26 10:32:11

回答

11

​​

UIView類定義了屏幕和用於管理該區域中的內容的界面 上的矩形 區域。 在運行時,視圖對象處理其 區域中任何內容的 呈現,並且還處理與 內容的任何交互。 UIView類本身 提供了基本的行爲,用於填充其背景顏色爲 的矩形區域。更復雜的內容可以通過繼承UIView和 來實現必要的圖形和 自己的事件處理代碼。 UIKit框架還包括一組可以使用的 標準子類,其中 的範圍從簡單按鈕到複雜 表。例如,UILabel對象 繪製文本字符串,而UIImageView對象繪製圖像。

由於您的應用程序與用戶主要通過查看 對象交互 ,因此這些對象具有數字 的責任。這裏僅僅是幾個 :

繪圖和動畫視圖繪製使用 技術,如UIKit中,核心 圖形和OpenGL ES在其矩形區域 內容。某些視圖 屬性可以動畫爲新的 值。佈局和子視圖管理 視圖可能包含零個或多個 子視圖。每個視圖將其自己的 默認調整大小行爲定義爲關聯 到其父視圖。視圖可以根據需要手動更改其子視圖的大小和位置 。事件 處理視圖是應答者,並且可以 處理由UIResponder類定義的觸摸事件和其他事件 。 A 視圖可以使用addGestureRecognizer: 方法來安裝手勢識別器 來處理常見手勢。

UIViewController

UIViewController類提供 基本觀點的管理模式 的iPhone應用程序。基本的 視圖控制器類支持關聯視圖的 演示文稿,支持管理模式視圖的 和支持將響應 中的視圖旋轉到設備方向更改的 。 子類,如 UINavigationController和 UITabBarController提供額外的 行爲來管理視圖控制器的複雜 層次結構和 視圖。

您可以使用每個實例 UIViewController來管理視圖 層次結構。典型的視圖層次結構 由根視圖 - 對 的引用組成,該視圖在此類的視圖 屬性中可用 - 通常爲一個 或更多子視圖,其中顯示實際的 內容。在iPhone和iPod touch上, 根視圖通常會填滿整個屏幕,但在iPad上,此視圖可能只填充 屏幕的一部分。在兩個 的情況下,視圖控制器是 負責管理整個 視圖層次結構,包括所有 子視圖。

視圖控制器緊緊地綁定到 他們管理的視圖和參與 響應器鏈用於處理 事件。視圖控制器是 UIResponder類的 自己的後代和插入 到 管理根視圖和它的父, 其通常屬於不同的 視圖控制器之間的響應鏈。如果視圖 控制器的視圖不處理 事件,則視圖控制器本身具有 可選項,用於在將事件傳遞到 超級視圖之前處理事件 。

UIViewController類與 一起使用應用程序的窗口來處理 設備方向更改。如果 視圖控制器支持新 取向(通過其 shouldAutorotateToInterfaceOrientation的 返回值確定: 方法),它動畫從當前位置到 一個新的過渡 。作爲此更改的一部分,它 也適用於 層次結構中視圖效果的任何大小調整規則 。如果要將 更改爲您的視圖層次結構作爲 方向更改的一部分,則可以將UIViewController的 方法重寫爲 以實現您的更改。關於你需要 覆蓋的方法 信息,請參見「處理視圖 旋轉。」

視圖控制器是 的大多數iPhone應用 設計的根本。後面的部分提供了有關使用 UIViewController類的方法和屬性的基本信息。有關使用視圖 控制器構建和管理您的 應用程序的用戶界面的其他信息,請參閱查看 iOS編程指南。

+8

您應該鏈接源代碼,而不是複製/粘貼文檔。 – Eiko 2011-04-26 11:03:42

+4

我也有鏈接... – 2011-04-26 11:04:36

+0

啊!看起來像一個普通的標題:-) – Eiko 2011-04-26 11:06:50

0

您是否熟悉模型 - 視圖 - 控制器模式?在開始iPhone開發之前,您應該熟悉它。我推薦本書Cocoa Design Patterns。相信我,它將長期幫助很多

5

視圖控制器 - 主屏幕

視圖 - 組件,它可以添加到視圖控制器