iOS開發②應用界面

iOS界面應用界面主要是使用Cocoa Touch框架開發,它有一套本身的MVC模式,其中視圖和控制器是UIKit中的UIVIew及其子類和UIVIewController及其子類。app

視圖控制器

Cocoa Touch中UIVIewController是全部控制器的基類,視圖控制器有不少種,下面先介紹一個iOS中的控制器種類和生命週期。框架

視圖控制器種類

與導航相關的視圖控制器以下所示:iphone

  • UIViewController: 用於自定義視圖控制器的導航。例如對於兩個界面的跳轉,能夠用一個UIViewController來控制另兩個UIViewController。動畫

  • UINavigationController:導航控制器,它與UITableViewController結合使用,可以構建樹形結構導航模式spa

  • UITabBarController: 標籤欄控制器,用於構建樹形標籤導航模式設計

  • UIPageViewController:呈現電子書導航風格控制器對象

  • UISplitViewController:能夠把屏幕分割成幾塊的視圖控制器,主要爲iPad屏幕設計繼承

  • UIPopoverController:呈現氣泡風格視圖的控制器,主要爲iPad屏幕設計。生命週期

視圖的生命週期

在應用運行過程當中視圖會顯示不一樣的狀態,這就是應用的生命週期。視圖生命週期的不一樣階段會回調視圖控制器的不一樣的方法,視圖控制器的生命週期以下圖所示:事件

視圖的生命週期主要有四種狀態:

  • 視圖建立

視圖建立不加載到內存中,會調用viewDidLoad方法,可是視圖此時並不可見。該方法中一般會對所控制的視圖進行初始化處理。viewDidLoad方法在應用運行的時候只調用一次。

  • 視圖可見

視圖可見先後會調用viewWillAppear和viewDidAppear兩個方法。

  • 視圖不可見

視圖不可見先後會調用viewWillDisappear和viewDidDisappear兩個方法。

  • 系統低內存

在低內存狀況下,iOS系統會調用didReceiveMemoryWarning方法,該方法的功能是釋放內存,包括視圖控制器中的一些成員變量和視圖的釋放。

視圖

Cocoa Touch中UIViewC是全部視圖的基類。

UIView繼承層次結構

視圖分類

蘋果將UIKit框架中的視圖分爲如下幾個類別:

  • 控件

繼承自UIController類,可以響應用戶高級事件。

  • 窗口

它是UIWindow對象,一個iOS應用只有一個UIWindow對象,它是全部子視圖的父容器。

  • 容器視圖

它是UIScrollView、UIToolbar及它們的子類。UIScrollView的子類有UITextView、UITabView和UICollectionView,在內容超出屏幕時,它們能夠提供水平或垂直滾動條。UIToolbar是很是特殊的容器,它可以包含其餘控件,通常置於屏幕底部,特殊狀況下也能夠置於屏幕頂部。

  • 顯示視圖

用於顯示信息,包括UIImageView,UILabel、UIProgressView和UIActivityIndicatorView等

  • 文本和Web視圖

提供了可以顯示多行文本的視圖,包含UITextView和UIWebView,其中UITextView也屬於容器視圖,UIWebView是可以加載和顯示HTML代碼的視圖。

  • 導航視圖

爲用戶提供從一個屏幕到另外一個屏幕的導航視圖,它包括UITabBar和UINavigationBar。

  • 警告框和操做表

用於給用戶提供一種反饋或者與用戶進行交互。警告框是能夠以動畫方式彈出來的視圖,而操做表是給用戶可選擇操做的視圖,在iphone中它會從屏幕底部彈出,在iPad中則會出如今屏幕中央。

應用界面構建層次

通常狀況下,iOS用於中只包含一個UIWindow。從UI構建層次來說,UIWindow包含了一個根視圖UIView。根視圖通常也只有一個,置於UIWindow中。根視圖類型決定了應用程序的類型。應用界面的構建層次是一種樹形結構,以下圖所示:

簡要介紹圖中三個屬性的含義:

  • superview:得到父視圖對象

  • subviews:得到子視圖對象集合

  • window:得到視圖所在的界面Window對象

相關文章
相關標籤/搜索