UIKit Class Hierarchy

UIKit reference introduction

先看看這個(gè)層級(jí)結(jié)構(gòu)圖吧:
image
image

UIAcceleration:

加速計(jì)類: 加速度實(shí)為UIAcceleration對(duì)象實(shí)例,又被稱為加速事件,它代表即時(shí)的三維空間上,三個(gè)不同軸上的加速度數(shù)據(jù)。

加速計(jì)三維空間
加速計(jì)三維空間

實(shí)用的場(chǎng)景中可以用于“搖晃”,游戲中用于控制對(duì)象移動(dòng)等。
iOS 5.0之后,它被放在了 CoreMotion 框架里

UIAccelerometer

獲得當(dāng)前設(shè)備的加速計(jì)單例,里面的delegate 可以獲得 UIAcceleration 的實(shí)例
iOS 5.0之后,它被放在了 CoreMotion 框架里

UIAccessibilityElement

這個(gè)類封裝的是可便捷的訪問(wèn)信息,主要是針對(duì)一些特殊人群,比如顏色識(shí)別有困難,殘障人士等。 默認(rèn)情況下你的設(shè)備設(shè)定中是不開(kāi)啟的,如果你要開(kāi)啟時(shí),可以在設(shè)置里的Accessibility中打開(kāi)相應(yīng)的輔助功能。
原生的UI組件的isAccessibilityElement
默認(rèn)是YES的。自定義的UI組件的isAccessibilityElement屬性是NO,當(dāng)isAccessibilityElement
為NO時(shí),instruments將無(wú)法捕獲。所以這種情況,我們需要將自定義UI的的isAccessibilityElement屬性置為YES,instruments就能獲取到。

UIBarItem

UIBarItem 是一個(gè)抽象的超類,用來(lái)在Bar上添加道具。 類似于一個(gè)按鈕。有標(biāo)題,有圖片,動(dòng)作和 目標(biāo)。

UIBarButtonItem

這個(gè)類的實(shí)例是用在 UIToolbar 或 UINavigationBar 上的專用對(duì)象按鈕。它從它的抽象父類 UIBarItem 繼承的基本按鈕的行為。比如 NavigationBar 的返回,關(guān)閉按鈕。

UITabBarItem

這個(gè)類的實(shí)現(xiàn),用于 Tabbar 上的按鈕對(duì)象。

UIBezierPath

UIBezierPath類可以創(chuàng)建基于矢量的路徑。
此類是Core Graphics框架關(guān)于path的一個(gè)封裝。使用此類可以定義簡(jiǎn)單的形狀,如橢圓或者矩形,或者有多個(gè)直線和曲線段組成的形狀。
它還提供了添加二次貝塞爾曲線和三次貝塞爾曲線的支持。

UIColor

繪制UI中用的最多的一個(gè)類了吧,一個(gè) UIColor 對(duì)象代表顏色,alpha 值。可以使用 UIColor 對(duì)象來(lái)存儲(chǔ)顏色數(shù)據(jù),并在繪畫(huà)過(guò)程中,你可以用它們來(lái)設(shè)置當(dāng)前填充和筆觸顏色。

UIDecive

UIDevice類提供了一個(gè)單例代表當(dāng)前設(shè)備。從這個(gè)實(shí)例中,可以獲取有關(guān)設(shè)備的唯一的ID,分配名稱,設(shè)備型號(hào),和操作系統(tǒng)名稱和版本等信息。也可以使用的UIDevice實(shí)例,檢測(cè)設(shè)備的特點(diǎn), 如物理方向的變化。
常用在判斷 iOS 版本。

UIDocumentInteractionController

文件交互控制器委托對(duì)象,提供應(yīng)用程序管理與本地系統(tǒng)中的文件的用戶交互的支持。例如,一個(gè)電子郵件程序可能使用這個(gè)類,允許用戶預(yù)覽附件和其他應(yīng)用程序中打開(kāi)它們。使用這個(gè)類, 目前預(yù)覽相應(yīng)的用戶界面,打開(kāi),復(fù)制或打印指定的文件。
一般在程序間共享文檔可以通過(guò)UIDocumentInteractionController(該類經(jīng)常被開(kāi)發(fā)者忽略),用其它APP預(yù)覽PDF文檔等。
第三方程序只需要通過(guò)在info.plist 中注冊(cè)支持的相關(guān)格式,并安裝到ios設(shè)備中,便可以自由打開(kāi),無(wú)需你程序中自己檢測(cè)第三方程序是否安裝,而且文件之間的傳輸也實(shí)現(xiàn)了跨出沙盒的功能。

UIEvent

一個(gè) UIEvent 對(duì)象(或者簡(jiǎn)單地說(shuō),一個(gè)事件對(duì)象)在 IOS 中有三種類型的事件:觸摸事件(Touch),運(yùn)動(dòng)事件(Motion)和遠(yuǎn)程控制(RemoteControl)事件。遠(yuǎn)程控制的事件使一個(gè) Responder 對(duì)象來(lái)接收來(lái)自外部的 附件或耳機(jī)的命令,以便它可以管理管理音頻和視頻,例如,播放視頻或跳過(guò)到下一音軌。


event handling
event handling

觸摸事件,會(huì)經(jīng)過(guò)一系列的響應(yīng)鏈,最后被 UIResponder 接受到。并回調(diào):touchesBegan:withEvent: 方法。

UIFont

同樣常用的字體設(shè)定類,提供了用于獲取和設(shè)置字體信息的接口。
除了使用系統(tǒng)指定的字體外,還可以使用自定義的字體,只需要將自定義字體加到你的工程資源文件中,并在 info.plist 文件中增加一名為 UIAppFonts 的key。將這個(gè)key修改成array 將你用到的所有字體的名字,作為這個(gè)array的值,一項(xiàng)一項(xiàng)填進(jìn)去(包括擴(kuò)展名),然后就可以在代碼中直接用[UIFont fontWithName:@”CustomFontName” size:12]取得自定義的字體了。

UIGestureRecognizer

UIGestureRecognizer 是手勢(shì)識(shí)別的抽象基類。它有以下具體的子類:
UITapGestureRecognizer: 點(diǎn)擊手勢(shì),可以識(shí)別單次與多次點(diǎn)擊 UIPinchGestureRecognizer: 縮放手勢(shì) UIRotationGestureRecognizer: 旋轉(zhuǎn)手勢(shì) UISwipeGestureRecognizer: 滑動(dòng)手勢(shì) UIPanGestureRecognizer: 拖動(dòng)手勢(shì) UILongPressGestureRecognizer: 長(zhǎng)按手勢(shì)

UIImage

UIImage 封裝了顯示圖片的高層級(jí)方法,你可以從 文件 ,Quartz ,原始圖片數(shù)據(jù)對(duì)象(相機(jī),掃描儀等)中創(chuàng)建。
支持的文件格式:
.tiff, .tif, .jpg, .jpeg, .gif, .png, .bmp, .BMPf, .ico, .cur, .xbm

可通過(guò) UIImagePickerController 類從iPhone照片庫(kù)或照相機(jī)獲取圖像

UILocalizedIndexedCollation

提供索引標(biāo)題的類,常用在TableView的右方索引列。

localized index

UIMenuController

菜單控制器,默認(rèn)的單例方法,提供了剪切,復(fù)制,粘貼, 選擇,選擇,和刪除功能。你也可以創(chuàng)建自定義的 UIMenuController,

UIMenuController

UIMenuItem

是UIMenuController 的 menuItems 數(shù)組里的每個(gè)實(shí)例。你可以自行定義他們,它只需要兩個(gè)屬性,title 與 action (SEL)

UINavigationItem

一個(gè)UINavigationItem 管理顯示在 UINavigationBar 上的按鈕和視圖對(duì)象。每個(gè) View Controller push 到 navigation 棧上,必須有一個(gè)在 NavigationBar 上包含按鈕與被顯示的視圖 UINavigationItem 對(duì)象。

UINib

UINib 可以從 Interface Builder nib 文件中將數(shù)據(jù)進(jìn)行封裝,并將它進(jìn)行實(shí)例化緩存起來(lái)。當(dāng)你需要用到 nib 時(shí),不必去讀 nib 文件了。
比如:
// Load the hoverView from HoverView.xib UINib *hoverViewXib = [UINib nibWithNibName:@"HoverView" bundle:nil]; [hoverViewXib instantiateWithOwner:self options:nil];

UIPasteboard

讀寫(xiě)系統(tǒng)里的剪貼版內(nèi)容

UIPopoverController

iPad 里的專有 Controller, 效果如下:


UIPopoverController
UIPopoverController

UIPrintFormatter

打印格式的抽象基類,可定制打印的頁(yè)邊距等。具體實(shí)現(xiàn)類有如下三種:
UISimpleTextPrintFormatter UIMarkupTextPrintFormatter UIViewPrintFormatter

UIPrintInfo

封裝了關(guān)于打印工作的信息,包括打印的id,名稱,輸出類型,方向,雙面打印模式。當(dāng)它需要打印時(shí),這些信息會(huì)被打印系統(tǒng)使用。

UIPrintInteractionController

它包括了打印的UI與,打印文稿,圖片和其它打印內(nèi)容之間的典型交互情景。你可以使用 UIPrintInteractionController 單例方法,將整個(gè)打印過(guò)程進(jìn)行控制。


UIPrint Center
UIPrint Center

UIResponder

該UIResponder類定義了響應(yīng)和處理事件的對(duì)象接口。它是UIApplication,UIView的和它的子類(包括UIWindow)的父類。這些類的實(shí)例通常被作為應(yīng)答對(duì)象,或者簡(jiǎn)單地說(shuō),應(yīng)答者。
通常有兩種類型的事件:觸摸與運(yùn)動(dòng)事件。主要的觸摸事件處理方法有 touchesBegan:withEvent:,touchesMoved:withEvent:, touchesEnded:withEvent:, and touchesCancelled:withEvent:. 這些方法的參數(shù)和他們新的,或有改變的特別觸摸事件有關(guān)。這樣響應(yīng)對(duì)象可以跟蹤和處理這些事件。任何時(shí)候當(dāng)手指觸摸屏幕,拖動(dòng),抬起時(shí),UIEvent 對(duì)象都會(huì)被創(chuàng)建,這個(gè)事件對(duì)象包括了所有剛從屏幕抬起時(shí)的手指的 UITouch 對(duì)象。
-touchesBegan:withEvent: // 當(dāng)用戶觸摸到屏幕時(shí)調(diào)用方法-touchesEnded:withEvent: // 當(dāng)用戶觸摸到屏幕并移動(dòng)時(shí)調(diào)用此方法-touchesMoved:withEvent: // 當(dāng)觸摸離開(kāi)屏幕時(shí)調(diào)用此方法-touchesCancled:withEvent: // 當(dāng)觸摸被取消時(shí)調(diào)用此方法

通俗一點(diǎn)說(shuō),一個(gè) UIResponder 對(duì)象表示一個(gè)可以接收觸摸屏上的觸摸事件的對(duì)象, iOS 中,所有顯示在界面上的對(duì)象都是從 UIResponder 直接或間接繼承的。
iOS 3 之后開(kāi)始支持運(yùn)動(dòng)事件:
-motionBegan:withEvent: // 運(yùn)動(dòng)開(kāi)始時(shí)執(zhí)行-motionEnded:withEvent: // 運(yùn)動(dòng)結(jié)束時(shí)執(zhí)行-motionCancled:withEvent: // 運(yùn)動(dòng)被取消時(shí)執(zhí)行

iOS 4 之后開(kāi)始支持遠(yuǎn)程控制事件:
-remoteControlReceivedWithEvent

接收事件之后,使用到的響應(yīng)鏈函數(shù) -nextResponder
下一個(gè)響應(yīng)者,在通常的UIView 實(shí)現(xiàn)中,一般會(huì)返回父級(jí)對(duì)象
所以你可以自行改變響應(yīng)鏈的響應(yīng)路徑

響應(yīng)鏈](https://developer.apple.com/library/ios/documentation/EventHandling/Conceptual/EventHandlingiPhoneOS/event_delivery_responder_chain/event_delivery_responder_chain.html#//apple_ref/doc/uid/TP40009541-CH4-SW2)

-isFirstResponder 指示對(duì)象是否為第一響應(yīng)者,這里的第一響應(yīng)者就是當(dāng)前焦點(diǎn)-canBecomeFirstResponder 布爾值,指定對(duì)象是否可以變?yōu)榈谝豁憫?yīng)者-becomeFirstResponder 把對(duì)象設(shè)置為 firstResponder-canResignFirstResponder 對(duì)象是否可以取消 firstResponder-resignFirstResponder 注銷 firstResponder

UIApplication

這個(gè)UIApplication類提供運(yùn)行在 iOS 上的 app 的集中協(xié)調(diào)與控制中心,每個(gè) app 只有一個(gè)它的實(shí)例。當(dāng) app 啟動(dòng)時(shí),UIApplicationMain 函數(shù)被調(diào)用,他會(huì)創(chuàng)建一個(gè) UIApplication的單例對(duì)象。之后,你就可以通過(guò) sharedApplication 類方法訪問(wèn)到它。
如我們?cè)?main.c 文件中看到的:
return UIApplicationMain(argc, argv, nil, NSStringFromClass([SomeAppDelegate class]));

UIApplication 的主要任務(wù)是處理傳入的用戶事件的初始路由。此外,他還維護(hù)所有當(dāng)前打開(kāi)的窗口列表(UIWindow 對(duì)象),所以通過(guò)它你可以檢索到應(yīng)用程序的UIView對(duì)象。
這個(gè)app對(duì)象通常分配一個(gè) delegate,接受一些運(yùn)行時(shí)的標(biāo)致性的通知,比如:app 啟動(dòng),低內(nèi)存,app 關(guān)閉,然后作出響應(yīng)。
UIApplication 允許你管理設(shè)備的以下幾種行為:
控制界面方向掛起傳入的觸摸事件接近感應(yīng)(用戶面部)開(kāi)和關(guān)注冊(cè)遠(yuǎn)程通知觸發(fā)撤銷重做 UI判斷是打開(kāi)app 還是 URL退到后臺(tái)時(shí)繼續(xù)執(zhí)行任務(wù)注冊(cè)或取消本地通知執(zhí)行 app 級(jí)別的恢復(fù)任務(wù)

UIApplication 定義的 delegate 必須遵循 UIApplicationDelegate 協(xié)議并且實(shí)現(xiàn)一些協(xié)議的方法

UIView

UIView 類定義了一個(gè)矩形區(qū)域和管理該區(qū)域的接口。在運(yùn)行時(shí),一個(gè) view 對(duì)象在它的區(qū)域內(nèi)進(jìn)行繪制和處理這些內(nèi)容的交互。UIView 類本身也提供了一些帶背景色的基本填充行為。更多精妙的內(nèi)容,可以通過(guò)你自定義的子類實(shí)現(xiàn)一些所須的繪制和交互處理達(dá)成。
另外UIKit 框架也自帶了一些標(biāo)準(zhǔn)子類,從簡(jiǎn)單的按鈕到復(fù)雜的表格都能被使用。例如: UILabel 可以繪制文本內(nèi)容,UIImageView 繪制一個(gè)圖片.
參考: View 與 Window 架構(gòu)
View 動(dòng)畫(huà)

UIWindow

UIWindow 類定義了被稱為 window 的對(duì)象,它用來(lái)管理和協(xié)調(diào)在設(shè)備屏幕上出現(xiàn)的view。除非app有其它外部屏幕上,否則一個(gè)app只有一個(gè) window
一個(gè) window的主要兩個(gè)功能是提供view的顯示區(qū)域和發(fā)配事件到view上,要想改變你的顯示內(nèi)容,你可以改變 window的 root view ,但你不能創(chuàng)建一個(gè)新的 window. 一個(gè) window有一個(gè)明確的等級(jí)結(jié)構(gòu), UIWindowLevelNormal--表示它相對(duì)其它 windows的z軸位置. 例如一個(gè)系統(tǒng)提示window出現(xiàn)在 normal window 上面。
UILabel
UILabel 類實(shí)現(xiàn)了只讀文本 view. 你能使用這個(gè)類畫(huà)一行或多行靜態(tài)文本。基本的 UILabel 支持簡(jiǎn)單和復(fù)雜的文本樣式。你也可以控制它上面的樣式,比如使用shadow 繪制陰影或高亮。如果需要,你可以通過(guò)子類來(lái)實(shí)現(xiàn)更加個(gè)性化的樣式。
參考: 在iOS上顯示文本內(nèi)容

UIPickerView

UIPickerView 的實(shí)現(xiàn)對(duì)象叫做 picker view, 它使用類似角子機(jī)(賭場(chǎng)里經(jīng)常見(jiàn)的777機(jī)器)來(lái)顯示一個(gè)或多個(gè)值的設(shè)置。用戶通過(guò)滾動(dòng)輪子來(lái)選擇對(duì)應(yīng)的行的值。
你也可以通過(guò)子類來(lái)定制顯示內(nèi)容。這個(gè)UI由包括(component)元件和行構(gòu)成。元件是一個(gè)滾輪,在上面是一連串一行行的索引內(nèi)容。在 picker view 上不同的元件從左至右順虛排列。每一行的內(nèi)容可以是一個(gè)字符串或view 對(duì)象。比如 UILabel 或 UIImageView.

Picker View
Picker View

UIProgressView
UIProgressView 類表現(xiàn)了一個(gè)進(jìn)度條描述進(jìn)展的時(shí)間。它也支持管理樣式的屬性。
UI progress view
UI progress view

UIActivityIndicatorView

使用一個(gè)動(dòng)態(tài)的指示器顯示內(nèi)容正在執(zhí)行中,它就象一個(gè)活動(dòng)的齒輪。


UI activity indicator
UI activity indicator

UIImageView

一個(gè) image view 對(duì)象支持基本的視圖容器,可以顯示單張圖片或幾個(gè)動(dòng)畫(huà)圖片。如果是動(dòng)畫(huà)圖片,UIImageView 類支持控制動(dòng)畫(huà)的持續(xù)時(shí)間和頻率,你也可以自由的開(kāi)始和停止動(dòng)畫(huà)。
*iOS 6 之后,支持 “狀態(tài)保留” 機(jī)制,同樣也可以用于這里 *

UITabBar

一個(gè) tabbar 是一個(gè)控制器,通常在tab bar controller上下文中,它顯示屏幕的底部。在 tab bar 上的每一個(gè)按鈕是一個(gè)叫 UITabBarItem 的類的實(shí)例。如果你想替換Bar上的按鈕執(zhí)行不同的 action ,可以使用 UIToolbar 對(duì)象。


UI tab bar
UI tab bar

UIToolbar

一個(gè) toolbar 可以控制顯示一個(gè)或更多的按鈕,叫 toolbar items. 要?jiǎng)?chuàng)建 toolbar items, 使用 UIBarButtonItem 類。 要添加 toolbar items 到 toolbar 上,使用 setItems:animated: 方法


UI tool bar
UI tool bar

UINavigationBar

這個(gè) UINavigationBar 類用于控制導(dǎo)航欄內(nèi)容。它是一個(gè)bar,通常顯示上屏幕的最上方。主要的屬性有一個(gè)左(返回)按鈕,一個(gè)中心標(biāo)題,和可選擇的右側(cè)按鈕。你可以使用navigation bar 作為一個(gè)標(biāo)準(zhǔn)對(duì)象或結(jié)合 navigation controller 使用.
在iOS5之后,你也可以自行定制它的樣式
UI nav bar

UITableViewCell

UITableViewCell 定義了在 UITableView 對(duì)象里的每cell的屬性和行為。這個(gè)類包括了為設(shè)置和管理 cell 內(nèi)容和背景的屬性和方法(包括文本,圖片,自定義的 view),管理 cell的選擇,高亮狀態(tài),管理附屬 view和初始編輯中 cell 內(nèi)容。
參考: TableViewCell 詳解

cell part
cell part

UIActionSheet

UIActionSheet 提供了一個(gè)單選器,你也可以通過(guò)它來(lái)提示用戶哪些是危險(xiǎn)的操作。這個(gè)Action sheet 包括一個(gè)可選擇的標(biāo)題和一個(gè)或多個(gè)按鈕,每個(gè)按鈕都代表一個(gè)action


ui action sheet
ui action sheet

UIAlertView

使用 UIAlertView 用于提示用戶一些信息,這個(gè) alert View 類似但和 action sheet 表現(xiàn)上不一樣。
使用類提供的屬性和方法設(shè)定 title, message, 和代理來(lái)配置按鈕。如果你要添加一個(gè)自定義的按鈕,你必須設(shè)定一個(gè)delegate. 這個(gè)代理一定要遵循 UIAlertViewDelegate 協(xié)議。使用 show 方法來(lái)顯示 alert view.


ui alert view
ui alert view

UIScrollView

UIScrollView 類提供了為顯示超過(guò)一屏的超長(zhǎng)內(nèi)容的支持。它讓用戶可以支持滑動(dòng)手勢(shì)和收縮手勢(shì)瀏覽內(nèi)容。
UIScrollView 也是一些 UIKit 類,包括 UITableView 和 UITextView 的超類。


UI scroll view
UI scroll view

UITableView

UITableView 實(shí)例是為顯示和編輯列表信息。

UI table view
UI table view

非常詳細(xì)的文檔: Table View Programming Guide for iOS

UITextView

UITextView 類實(shí)現(xiàn)了滾動(dòng)的行為,多行文本區(qū)域. 這個(gè)類支持定制的文本樣式,也支持文本編輯。通常用來(lái)顯示多行文本,比如一個(gè)比較長(zhǎng)的文檔時(shí)。


UI text view
UI text view

UISearchBar

這個(gè) UISearchBar 類實(shí)現(xiàn)了一個(gè)文本控制器為搜索提供基本的文字輸入,這個(gè)控制器提供了一個(gè)文本輸入?yún)^(qū)域作為文本輸入,一個(gè)搜索按鈕,一個(gè)書(shū)簽按鈕,一個(gè)取消按鈕。這個(gè) UISearchBar 對(duì)象實(shí)現(xiàn)上不執(zhí)行搜索操作,你需要使用 遵循 UISearchBarDelegate 協(xié)議的delegate,當(dāng)文本輸入和按鈕點(diǎn)擊時(shí)實(shí)現(xiàn)它的action。


UI search bar
UI search bar

UIWebView

你可以在應(yīng)用使用 UIWebView 類嵌入 web 內(nèi)容。你可以非常簡(jiǎn)單的創(chuàng)建 UIWebView對(duì)象附加了 window上,并發(fā)送請(qǐng)求 web 內(nèi)容。你也可以使用這個(gè)類進(jìn)行返回前進(jìn)到歷史頁(yè)面,并且你甚至可以以編程方式設(shè)定 web 內(nèi)容屬性。
參考: Safari Web Content Guide

UIControl

UIControl 是所有 control 對(duì)象的基礎(chǔ)類,比如 UIButton 和 滾動(dòng)條 等,他將用戶的意圖傳遞給應(yīng)用。你不能直接實(shí)例化 UIControl 類, 代替它的是一些常用的UI子類.
UIControl 主要的任務(wù)是定義了一個(gè)接口,并且有一些基本實(shí)現(xiàn),當(dāng)一些事件調(diào)用時(shí),會(huì)首先調(diào)用它們到它們的對(duì)象。
為了說(shuō)明 target-action 原理,可以在Cocoa Fundamentals Guide 看"Target-Action in UIKit" 。如果要了解 Multi-Touch 事件信息,可以看 Event Handling Guide for iOS
UIControl 類也包括了 getting 和 setting control 狀態(tài)的方法,如,為了確定control是否打開(kāi)或者高亮。并且它還在內(nèi)部定義一些觸摸的跟蹤方法,這些跟蹤方法可以被子類覆蓋。

about UI Control
about UI Control

參考: About Controls

UIButton

一個(gè) UIButton的實(shí)例實(shí)現(xiàn)了在屏幕上的按鈕。當(dāng)點(diǎn)擊它時(shí)button截獲觸摸事件并發(fā)送 action 消息到 target 對(duì)象. 這個(gè)類支持設(shè)置title,image和其它外觀屬性方法。你還可以為不同的狀態(tài)設(shè)定不同的表現(xiàn)形式。


UI button
UI button

UIDatePicker

這個(gè)UIDatePicker類實(shí)現(xiàn)了一個(gè)使用多個(gè)齒輪對(duì)象,讓用戶選擇日期和時(shí)間。iPhone 時(shí)間picker例子是一個(gè)時(shí)間鬧鐘設(shè)定應(yīng)用,你也可以用它做為一個(gè)倒計(jì)時(shí)器。


UI date picker
UI date picker

UIPageControl

你可以用UIPageControl 類來(lái)創(chuàng)建和管理頁(yè)碼 control. 一個(gè)頁(yè)碼 control 顯示一個(gè)水平的連續(xù)小點(diǎn),每個(gè)點(diǎn)代表了文檔的一部分。當(dāng)前顯示的頁(yè)用白色的點(diǎn)表示。


page control
page control

UISegmentedControl

一個(gè) UISegmentedControl 對(duì)象是一個(gè)由多個(gè)部分組成的水平control ,每個(gè)部分作為一獨(dú)立的按鈕。
一個(gè) segmented control 可以顯示一個(gè)title (一個(gè) NSString 對(duì)象)或一個(gè)圖片(UIImage 對(duì)象).這個(gè) UISegmentedControl 對(duì)象自動(dòng)調(diào)整他們的大小比例在他們的父視圖下,除非他們有一個(gè)指定的寬度設(shè)置。當(dāng)你添加和刪除部分片段時(shí),你可以請(qǐng)求這個(gè)action ,他會(huì)有滑動(dòng)和消退效果。


UI Segmented control
UI Segmented control

UITextField

一個(gè) UITextField 也是一個(gè) control 對(duì)象,它是一個(gè)顯示可編輯文本,并且當(dāng)用戶按下return按鈕時(shí)發(fā)送 action 消息到對(duì)象。你典型的使用場(chǎng)景是,搜集用戶一定數(shù)量的文本,并且馬上執(zhí)行一些action ,比如基于文本的搜索操作。


UI text field
UI text field

UISilder

一個(gè) UISilder 對(duì)象是一個(gè)可視化的 control , 它使用一個(gè)連續(xù)的值范圍進(jìn)行選擇, Slider 通常顯示為水平的滑動(dòng)條。


UI slider
UI slider

UISwitch

你可以使用 UISwitch 類來(lái)創(chuàng)建和管理 On / Off 按鈕。例如,在設(shè)置飛行模式和藍(lán)牙設(shè)置時(shí)。


UI switch
UI switch

UIViewController

這個(gè) UIViewController 類提供了基本的 view 管理模型。你很少直接實(shí)例化UIViewController對(duì)象。相反,你實(shí)例化UIViewController類的子類執(zhí)行特定的任務(wù)。
視圖控制器管理一組視圖組成應(yīng)用程序的用戶界面的一部分.作為應(yīng)用程序的控制器層的一部分, 視圖控制器和其它模型對(duì)象,其它視圖控制器一起構(gòu)成了一個(gè)一致的用戶界面。
必要時(shí),一個(gè)視圖控制器可以:
調(diào)整和排版他們的 view
調(diào)整 view 里的內(nèi)容
當(dāng)用戶與他們交互時(shí),反應(yīng)他們與視圖的效果。

參考: View Controller Programming Guide for iOS

UISplitViewController

UISplitViewController是一個(gè)管理包含了兩邊ViewController的視圖控制器,你使用這個(gè)類去實(shí)現(xiàn)主-從界面, 在左邊顯示的是列表視圖控制器,右邊是左邊點(diǎn)擊后的詳細(xì)視圖控制器。它只能適用于 iPad 設(shè)備。嘗試去用到其它設(shè)備都會(huì)出現(xiàn)異常。
它沒(méi)有特定的界面,他的主要工作是管理兩個(gè)視圖控制器在切換方向時(shí)的表現(xiàn)形式。


ui split view controller

UITabBarController

UITabBarController 類實(shí)現(xiàn)了一個(gè)專門的類似radio-style的視圖控制器管理界面。這個(gè)標(biāo)簽欄界面的標(biāo)簽顯示在窗口的底部。它通常按它原來(lái)的樣式顯示,不過(guò)在 iOS6 之后可以用子類顯示。
每個(gè)標(biāo)簽欄控制器的標(biāo)簽對(duì)應(yīng)一個(gè)定制的視圖控制器。當(dāng)用戶選擇一個(gè)指定的標(biāo)簽地,這個(gè)標(biāo)簽欄控制器替換之前的主視圖為相關(guān)的視圖控制器.


Tab bar controller views
Tab bar controller views

你不能直接訪問(wèn)標(biāo)簽控制器上的標(biāo)簽視圖。要配置這個(gè)標(biāo)簽,你可以分配這個(gè) viewControllers 屬性來(lái)提供根視圖。它的顯示順序也是由你分配viewControllers時(shí)的順序來(lái)確定的。
標(biāo)簽欄內(nèi)容是通過(guò)他們相應(yīng)的視圖控制器進(jìn)行配置,通過(guò)創(chuàng)建一個(gè)UITabBarItem 類的實(shí)例來(lái)生成標(biāo)簽內(nèi)容,配置合適的屬性,然后賦給視圖控制器的tabBarItem屬性.如果你沒(méi)有提供定制的標(biāo)簽欄內(nèi)容,那它默認(rèn)只會(huì)顯示一個(gè)這個(gè)視圖控制器的標(biāo)題。

UITableViewController

Table View
Table View

UITableViewController 類創(chuàng)建了一個(gè)控制器管理表格視圖. 它實(shí)現(xiàn)了下列行為:
如果nib 文件通過(guò) initWithNibName:bundle: 方法指定(它是父類 UIViewController 聲明的方法), UITableViewController 會(huì)從這個(gè)nib文件中讀取這個(gè)表格視圖結(jié)構(gòu)。否則,它是不能正確配置UITableView對(duì)象和計(jì)算大小的。你可以通過(guò)tableview屬性來(lái)設(shè)置它。

如果包含表視圖的nib文件加載后,datasource(數(shù)據(jù)源)和delegate(委托)為nib文件中定義的對(duì)象(如果有的話).如果沒(méi)有指定nib文件或者nib文件定義沒(méi)有datasource或delegate, UITableViewController 設(shè)置表視圖的datasource 與 delegate為它自己(self)

當(dāng)表視圖第一次出現(xiàn)時(shí),table-view controller重新加載表視圖數(shù)據(jù)。它也在每次顯示時(shí)清理了選擇過(guò)的行。這個(gè) UITableViewController 類的方法是在基于父類方法的viewWillAppear:時(shí)實(shí)現(xiàn)的。你也可以關(guān)閉這個(gè)默認(rèn)行為,通過(guò)clearsSelectionOnViewWillAppear屬性。

當(dāng)表視圖被顯示后,控制器刷新表視圖的滾動(dòng)條指示器。這個(gè) UITableViewController 類的方法是實(shí)現(xiàn)在 viewDidAppear: 里的。

它實(shí)現(xiàn)了父類方法 setEditing:animated:, 所以當(dāng)用戶點(diǎn)擊導(dǎo)航欄上的編輯|完成按鈕時(shí),會(huì)控制表格的編輯模式。

你可以創(chuàng)建它的子類來(lái)管理每個(gè)表視圖。當(dāng)你在控制器里初始化了 initWithStyle:,你必須指定表視圖的樣式(plain 或 grouped)。
參考: Table View Programming Guide for iOS

UINavigationController

UINavigationController 類實(shí)現(xiàn)了一專門的視圖控制器去管理分層內(nèi)容的導(dǎo)航。它的導(dǎo)航界面讓數(shù)據(jù)更有效,更簡(jiǎn)單的呈現(xiàn)。通常你直接使用它即可。iOS 6之后你可以定制它的行為。


A sample navigation interface
A sample navigation interface

導(dǎo)航控制器使用導(dǎo)航棧管理屏幕上的顯示內(nèi)容,它是一個(gè)視圖控制器數(shù)據(jù),數(shù)據(jù)第一個(gè)控制器對(duì)應(yīng)的是根視圖控制器,最后一個(gè)視圖控制器對(duì)應(yīng)的是當(dāng)前屏幕上顯示的內(nèi)容。你可以使用導(dǎo)航控制器類代的方法編輯這個(gè)棧。比如你添加一個(gè)視圖控制器到棧頂用 pushViewController:animated: 方法。


The views of a navigation controller
The views of a navigation controller

UIImagePickerController

UIImagePickerController類管理可定制的,系統(tǒng)提供的用戶界面,用于拍照和電影支持的設(shè)備上,并選擇保存的圖像和電影用于您的應(yīng)用程序.一個(gè)圖像選擇控制器管理用戶交互,并通過(guò)delegate對(duì)象傳遞交互的結(jié)果.
它的交互外觀由 source type 決定:
UIImagePickerControllerSourceTypeCamera 類型提供一個(gè)獲得新照片或電影的交互界面(設(shè)備必須支持媒體捕獲)
UIImagePickerControllerSourceTypePhotoLibrary 或 UIImagePickerControllerSourceTypeSavedPhotosAlbum 這兩個(gè)類型提供選擇已保存在設(shè)備上的照片或電影

Taking Pictures and Movies
Taking Pictures and Movies

參考: Camera Programming Topics for iOS

UIVideoEditorController

一個(gè)UIVideoEditorController對(duì)象,或視頻編輯器,管理系統(tǒng)提供的視頻微調(diào)界面,從視頻的開(kāi)頭到結(jié)尾幀都可以進(jìn)行管理。并可以重新調(diào)整編碼質(zhì)量。這個(gè)對(duì)象管理用戶交互,并提供電影編輯的文件路徑給到你的delegate 對(duì)象 (UIVideoEditorControllerDelegate Protocol Reference)。這個(gè)特性只支持有視頻錄制的設(shè)備上。

editing video controller

UIScreen

UIScreen對(duì)象包含設(shè)備的整個(gè)屏幕矩形邊界。設(shè)置應(yīng)用程序的用戶界面時(shí), 你應(yīng)該使用該對(duì)象的推薦矩形屬性設(shè)置應(yīng)用程序的窗口。
你可以通過(guò)它,獲得整個(gè)設(shè)備的屏幕的寬,高。
通常我們?cè)赿idFinishLaunchingWithOptions: 方法里經(jīng)常看到這樣一句話:
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

UIScreenMode

UIScreenMode對(duì)象代表一組可以應(yīng)用于一個(gè)UIScreen對(duì)象的屬性.對(duì)象封裝的信息是屏幕的基本顯示緩沖區(qū)的大小和長(zhǎng)寬比,及它使用的獨(dú)立像素。
開(kāi)發(fā)者可以不必關(guān)心這個(gè)屬性,屏幕和窗口對(duì)象會(huì)根據(jù)底層硬件自動(dòng)確定像素和長(zhǎng)寬比等。不過(guò)你要是想用到像素級(jí)信息,可以考慮用它來(lái)設(shè)置。

UISearchDisplayController

一個(gè)搜索控制器用于管理搜索狀態(tài)欄和伴隨搜索結(jié)果的視圖表。
你初始化一個(gè)帶搜索欄的搜索顯示控制器和視圖控制器負(fù)責(zé)管理數(shù)據(jù)搜索.當(dāng)用戶開(kāi)始搜索時(shí), 搜索控制器添加搜索界面在原視圖控制器上,當(dāng)搜索后,顯示一個(gè)搜索結(jié)果的表視圖顯示搜索結(jié)果。
當(dāng)你添加這個(gè)搜索控制器,并添加和管理搜索結(jié)果時(shí),你需要遵守以下四點(diǎn):
為搜索結(jié)果表視圖提供數(shù)據(jù)源(searchResultsDataSource).
為搜索結(jié)果表視圖提供代理(searchResultsDelegate).響應(yīng)用戶在結(jié)果表中的選擇。
為搜索控制器提供代理(delegate).響應(yīng)用戶在搜索欄上的輸入操作。
為搜索欄(UISearchBar)上提供代理(delegate UISearchBarDelegate), 響應(yīng)搜索條件的改變。

典型的初始化實(shí)例方法如下:
searchController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self]; searchController.delegate = self; searchController.searchResultsDataSource = self; searchController.searchResultsDelegate = self;

UISearchController

UITextChecker

使用UITextChecker類的實(shí)例來(lái)檢查一個(gè)字符串(通常是文檔的文本)拼錯(cuò)的單詞。

UITextInputStringTokenizer

這個(gè)類實(shí)現(xiàn)了UIKit 框架里的UITextInputTokenizer 協(xié)議。實(shí)現(xiàn)分詞效果.
PS: 沒(méi)有用過(guò)

UITextPosition

這個(gè)類表示在一個(gè)文本內(nèi)容的位置。換句話說(shuō),它是一個(gè)支持字符串在text-displaying視圖的索引.
UITextView 類的實(shí)例方法 positionFromPosition:offset: 返回的就是這樣的對(duì)象

UITextRange

這個(gè)類表示在一個(gè)文本內(nèi)容中的區(qū)域。換句話說(shuō),它表示從哪兒開(kāi)始到哪兒結(jié)束的索引。
UITextView 類的實(shí)例方法 selectedRange 返回的就是這樣的對(duì)象 [textView selectedTextRange];

UITouch

UITouch對(duì)象表示手指在屏幕上點(diǎn)擊或移動(dòng)的特定事件.你可以通過(guò)UIEvent傳遞過(guò)來(lái)的UITouch對(duì)象訪問(wèn)到。
UITouch對(duì)象包括訪問(wèn)的方法,和在特定的視圖或窗口觸摸的位置.它還允許您找到接觸發(fā)生時(shí),用戶是否不止一次點(diǎn)擊,是否是滑動(dòng).從哪兒開(kāi)始,哪兒結(jié)束等等。
gestureRecognizers 屬性在 iOS 3.2 后被引入.返回的是手勢(shì)識(shí)別器類。


Discrete and continuous gestures
Discrete and continuous gestures

ps:作者不更新了,這么好的文章不能丟了

轉(zhuǎn)載自:這里

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容