一、基礎概念
一.1造烁、視圖控制器 (UIViewController及其子類)
概念
凡是繼承自UIViewController的對象否过,都叫做控制器,每一個控制器都會專門管理一個軟件界面
UIViewController 類或其子類的對象惭蟋。每個視圖控制器都負責管理一個視圖層次結構苗桂,包括視圖層次結構中的視圖并處理相關用戶事件,以及將整個視圖層次結構添加到應用窗口告组。
作用
負責處理軟件界面的各種事件煤伟、負責軟件界面的創(chuàng)建和銷毀
類別
- UIViewController: 用于自定義視圖控制器的導航。例如對于兩個界面的跳轉木缝,可以用一個UIViewController來控制另兩個UIViewController便锨。
- UINavigationController:導航控制器,它與UITableViewController結合使用我碟,能夠構建樹形結構導航模式
- UITabBarController: 標簽欄控制器放案,用于構建樹形標簽導航模式
- UISplitViewController:可以把屏幕分割成幾塊的視圖控制器,主要為iPad屏幕設計
- UIPopoverController:呈現(xiàn)氣泡風格視圖的控制器矫俺,主要為iPad屏幕設計吱殉。
- UIPageViewController:呈現(xiàn)電子書導航風格控制器
UISplitViewController和UIPopoverController是隨著iPad的出現(xiàn)而推出的掸冤,UIPageViewController則是用于構建電子書和移動雜志類應用。
阿敏說
視圖控制器是一個大的概念考婴,類似與頁面贩虾。
比如我們在安卓或者web上說的跳頁面催烘,或者跳Activity/Fragment沥阱,iOS就是推頁面,推控制器伊群。
(一般管視圖控制器叫控制器)
一.2考杉、視圖(UIView及其子類)
- 就是像按鈕(UIButton),文本(UILabel)和(圖片UIImageView)等之類的控件舰始。
- iOS 10中所有的UIView都是視圖容器崇棠,所有的控件都繼承自UIView。
- 安卓丸卷,視圖分為視圖 View 和 ViewGroup枕稀,只有ViewGroup才是容器(ViewGroup繼承自View)
- iOS, 在storyboard里面谜嫉,只有UIView這個控件能作為容器存放子控件萎坷,這點是缺陷和限制。如果使用代碼沐兰,那么比如UILabel這些控件也能作為容器存放子控件哆档。(UIViewController和UIView沒繼承關系)
注:理論上只有繼承自UIControl的類才能稱之為 控件 ,但是口頭上大多數(shù)人還是把所有繼承自UIView的類都稱之為 “控件”住闯。
阿敏說
- 視圖瓜浸,不過時候放在視圖控制器的控件罷了。
一.3比原、UIWindow
- UIWindow是一種特殊的UIView,通常在一個app中至少會有1個UIWindow插佛,一般也僅有1個吮铭。
- iOS程序啟動完畢后浸剩,創(chuàng)建的第一個視圖控件就是UIWindow猾封,接著創(chuàng)建UIViewController狈惫,最后將UIViewController的View添加到UIWindow上(這個添加UIViewController稱之為RootView吕晌,即根視圖控制器)靴患,于是UIViewController就顯示在屏幕上了作谭。
- 一個iOS程序之所以能顯示在屏幕上洲赵,完全是因為它有UIWindow厘线,也就是說识腿,沒有UIWindow就看不到任何UI界面。
- 狀態(tài)欄和鍵盤都是特殊的UIWindow造壮。