IOS開發之UIScreen和UIWindow,UIView

來源:互聯網
上載者:User

  UIScreen(螢幕),UIWindow(視窗),UIView(視圖)是IOS的幾個基本介面元素。其中UIWindow(視窗)和UIView(視圖)是為iPhone應用程式構造使用者介面的可視組件。UIWindow為內容顯示提供背景平台,UIView負責絕大部分的內容描畫,並負責響應使用者的互動。

 

1,UIScreen

  UIScreen類代表了螢幕,根據特酷吧的理解,UIScreen一般也只是用來擷取螢幕大小。如下例所示:

  CGrect screenBounds = [[UIScreen mainScreen] bounds];//返回的是帶有狀態列的Rect (0.0,0.0,320.0,480.0)

  CGRect viewBounds = [[UIScreen mainScreen] applicationFrame];//不包含狀態列的Rect(0.0,20.0,320.0,480.0)[iphone狀態列高度20像素]

 

2.UIWindow

  iPhone應用程式通常只有一個視窗,表示為一個UIWindow類的執行個體。應用程式在啟動時(或者從nib檔案進行裝載)建立這個視窗,並往視窗中加入一或多個視圖並顯示出來。之後我們很少需要再次引用它。UIWindow對象是所有UIView的根,管理和協調的應用程式的顯示。一般應用程式只有一個UIWindow對象,即使有多個UIWindow對象,也只有一個UIWindow可以接受到使用者的觸屏事件。

  在IOS中,UIWindow對象並沒有像windows應用程式中常見的關閉框或標題列這樣的組件,普通使用者不能直接對其進行關閉或其它操作。所有對視窗的操作都需要通過其編程介面來實現。應用程式可以藉助視窗對象來進行事件傳遞。視窗對象會持續跟蹤當前的第一響應者對象,並在UIApplication對象提出請求時將事件傳遞它。

  在Mac OS X中,NSWindow的父類是NSResponder;而在iPhone OS中,UIWindow的父類是UIView。因此,UIWindow視窗在IOS中也是一個視圖對象。

  在建立應用程式視窗時,應該總是將其初始的邊框尺寸設定為整個螢幕的大小。如果您的視窗是從nib檔案裝載得到,Interface Builder並不允許建立比螢幕尺寸小的視窗;然而,如果您的視窗是通過編程方式建立的,則必須在建立時傳入期望的邊框矩形。除了螢幕矩形之外,沒有理由傳入其它邊框矩形。螢幕矩形可以通過UIScreen對象來取得,具體代碼如下所示:

  self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];

  self.window.rootViewController = viewController;

  //UIWindow有一個根視圖控制器—這個視圖控制器負責配置當表單顯示時最先顯示的視圖。

  [self.window makeKeyAndVisible];//這行代碼會讓包含了視圖控制器視圖的Window視窗顯示在螢幕上。

 

3,視圖UIView

  視圖是UIView類的執行個體,負責在螢幕上定義一個矩形地區。視圖在展示使用者介面及響應使用者介面互動方面發揮關鍵作用。每個視圖對象都要負責渲染視圖矩形地區中的內容,並響應該地區中發生的操作事件。視圖是應用程式與使用者互動的重要機制。

  除了顯示內容和處理事件之外,視圖還可以用於管理一或多個子視圖。子視圖是指嵌入到另一視圖對象邊框內部的視圖對象,而被嵌入的視圖則被稱為父視圖或超視圖。視圖的這種布局方式被稱為視圖層次,一個視圖可以包含任意數量的子視圖,通過為子視圖添加子視圖的方式,視圖可以實現任意深度的嵌套。子視圖總是被顯示在其父視圖的上方。每個父視圖都負責管理其直接的子視圖,根據需要調整它們的位置和尺寸,以及響應它們沒有處理的事件。

  在IOS中視圖和視圖控制器緊密協作,視圖控制器的作用是處理視圖的裝載與卸載、處理由於裝置旋轉導致的介面旋轉,以及和用於構建複雜使用者介面的進階導航對象進行互動。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.