GeekBand-IOS進(jìn)階第一周筆記(view 的層次結(jié)構(gòu)、事件處理)

view的層次結(jié)構(gòu)

UIScreen

這個屬性我們直接與其打交道的機(jī)會較少,介紹幾個可能用到的方法和屬性。

  • +mainScreen拿到當(dāng)前設(shè)備的屏幕大小
  • multiple screens外接屏幕會用到


    multiple screens.png
  • .scale操縱的點所對應(yīng)屏幕的像素
  • .coordinateSpace坐標(biāo)隨著屏幕轉(zhuǎn)動等改變
  • .fixedCoordinateSpace坐標(biāo)不變
    下面這個是比較方便的截圖方法,返回一個UIView。


    實用截圖方法.png

UIWindow

  • -makeVisibleAndKey,當(dāng)前顯示的關(guān)鍵window,響應(yīng)用戶的window


    新建關(guān)鍵window.png
  • 遮掩任務(wù)欄的方法,在- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions設(shè)置window.windowlevel屬性值
    window小技巧.png

UIView

Clipping效果

當(dāng)view的superView.clipsToBounds屬性為YES時,它在superView外面的部分會被裁掉,效果如圖:


剪切屬性效果圖.png

view的基本操縱方法

view-CRUD.png

view的重要屬性

  1. .frame、.bounds、.center、.transform(控制平移、旋轉(zhuǎn)、縮放等屬性,提一下,在這個view中其他子view或者行為是在transfrom發(fā)生之后的視圖里繪制的。)
  2. -resizeToFit方法,使view的大小根據(jù)它自己的內(nèi)容調(diào)整
  3. .alpha,該屬性表明view的半透明程度(0.0~1.0),為0時完全透明也不響應(yīng)事件;.opaque(BOOL),為NO時是不透明的,如果alpha值不為1,opaque的值也不能為YES,注意邏輯關(guān)系。
  4. . maskView,這個屬性接收一個UIView對象,這個對象作為一個模板,如果該對象.alpha為不透明的,會把當(dāng)前view裁剪;透明的就直接顯示原view;半透明,它們顏色會混合。
  5. .tag,每個view可以設(shè)置一個tag屬性,為整數(shù),我們可以通過viewWithTag的方法便捷訪問該view。(不推薦使用,影響程序的可讀性)
  6. .tintColor,用來調(diào)色,當(dāng)這個屬性被設(shè)置后,所有在該view上的子view沿用tintColor的調(diào)色
  7. UIAppearance


    UIAppearance.png

事件處理

事件

什么是事件?觸摸、搖動、線控等,這些對設(shè)備發(fā)出的操控信號我們稱之為事件。


事件分發(fā)過程.png

NSRunLoop

監(jiān)聽事件源,包括系統(tǒng)的、custom和計時器的,然后接收系統(tǒng)touchEvent對象,通過主線程,包裝成UIEvent的對象發(fā)送給當(dāng)前程序,再到當(dāng)前keyWindow,最后是具體響應(yīng)這些事件的對象UIResponder


NSRunLoop.png

UIResponder

它是UIWindow、UIViewController、UIView的父類,為子類提供以下接口


UIResponder.png

Responder有.nextResponder屬性,指向下一個Responder,然后對于First Responder,有特別的一些方法


First Responder.png

分別是判斷是不是第一個Responder,可不可以成為第一個Responder,成為第一個Responder,取消第一個Responder。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • iOS開發(fā)中的事件處理 理論非原創(chuàng),是對網(wǎng)上資料的整理以及Demo驗證 一. UIResponder 1.1 事件...
    喪心病狂樂閱讀 804評論 0 0
  • 本次筆記主要是整理一下關(guān)于 iOS 中關(guān)于事件傳遞和響應(yīng)機(jī)制,參考了一些其他資料加上自己的理解。 事件 Event...
    varlarzh閱讀 378評論 0 2
  • 在iOS開發(fā)中經(jīng)常會涉及到觸摸事件。本想自己總結(jié)一下,但是遇到了這篇文章,感覺總結(jié)的已經(jīng)很到位,特此轉(zhuǎn)載。作者:L...
    WQ_UESTC閱讀 6,249評論 4 26
  • 好奇觸摸事件是如何從屏幕轉(zhuǎn)移到APP內(nèi)的?困惑于Cell怎么突然不能點擊了?糾結(jié)于如何實現(xiàn)這個奇葩響應(yīng)需求?亦或是...
    Lotheve閱讀 59,535評論 51 604
  • 本文內(nèi)容整理自史蒂文·斯皮爾伯格的2016哈佛大學(xué)畢業(yè)演講 史蒂文·斯皮爾伯格,著名好萊塢電影導(dǎo)演,作品有《大白鯊...
    碧落云湮閱讀 420評論 0 0

友情鏈接更多精彩內(nèi)容