view的層次結(jié)構(gòu)
UIScreen
這個(gè)屬性我們直接與其打交道的機(jī)會(huì)較少玩徊,介紹幾個(gè)可能用到的方法和屬性租悄。
- +mainScreen拿到當(dāng)前設(shè)備的屏幕大小
-
multiple screens外接屏幕會(huì)用到
- .scale操縱的點(diǎn)所對(duì)應(yīng)屏幕的像素
- .coordinateSpace坐標(biāo)隨著屏幕轉(zhuǎn)動(dòng)等改變
-
.fixedCoordinateSpace坐標(biāo)不變
下面這個(gè)是比較方便的截圖方法,返回一個(gè)UIView恩袱。
UIWindow
-
-makeVisibleAndKey泣棋,當(dāng)前顯示的關(guān)鍵window,響應(yīng)用戶的window
- 遮掩任務(wù)欄的方法畔塔,在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
設(shè)置window.windowlevel屬性值
UIView
Clipping效果
當(dāng)view的superView.clipsToBounds屬性為YES時(shí)潭辈,它在superView外面的部分會(huì)被裁掉,效果如圖:
view的基本操縱方法
view的重要屬性
- .frame澈吨、.bounds把敢、.center、.transform(控制平移谅辣、旋轉(zhuǎn)修赞、縮放等屬性,提一下屈藐,在這個(gè)view中其他子view或者行為是在transfrom發(fā)生之后的視圖里繪制的榔组。)
- -resizeToFit方法,使view的大小根據(jù)它自己的內(nèi)容調(diào)整
- .alpha联逻,該屬性表明view的半透明程度(0.0~1.0)搓扯,為0時(shí)完全透明也不響應(yīng)事件;.opaque(BOOL)包归,為NO時(shí)是不透明的锨推,如果alpha值不為1,opaque的值也不能為YES公壤,注意邏輯關(guān)系换可。
- . maskView,這個(gè)屬性接收一個(gè)UIView對(duì)象厦幅,這個(gè)對(duì)象作為一個(gè)模板沾鳄,如果該對(duì)象.alpha為不透明的,會(huì)把當(dāng)前view裁剪确憨;透明的就直接顯示原view译荞;半透明瓤的,它們顏色會(huì)混合。
- .tag吞歼,每個(gè)view可以設(shè)置一個(gè)tag屬性圈膏,為整數(shù),我們可以通過(guò)viewWithTag的方法便捷訪問(wèn)該view篙骡。(不推薦使用稽坤,影響程序的可讀性)
- .tintColor,用來(lái)調(diào)色糯俗,當(dāng)這個(gè)屬性被設(shè)置后尿褪,所有在該view上的子view沿用tintColor的調(diào)色
-
UIAppearance
事件處理
事件
什么是事件?觸摸叶骨、搖動(dòng)茫多、線控等,這些對(duì)設(shè)備發(fā)出的操控信號(hào)我們稱之為事件忽刽。
NSRunLoop
監(jiān)聽事件源天揖,包括系統(tǒng)的、custom和計(jì)時(shí)器的跪帝,然后接收系統(tǒng)touchEvent對(duì)象今膊,通過(guò)主線程,包裝成UIEvent的對(duì)象發(fā)送給當(dāng)前程序伞剑,再到當(dāng)前keyWindow斑唬,最后是具體響應(yīng)這些事件的對(duì)象UIResponder
UIResponder
它是UIWindow、UIViewController黎泣、UIView的父類恕刘,為子類提供以下接口
Responder有.nextResponder屬性,指向下一個(gè)Responder抒倚,然后對(duì)于First Responder褐着,有特別的一些方法
分別是判斷是不是第一個(gè)Responder,可不可以成為第一個(gè)Responder托呕,成為第一個(gè)Responder含蓉,取消第一個(gè)Responder。