iOS界面編程之界面管理(一)

一言疗、UIView

UIView是iPhone程序非常重要的元素。所有可視化控件都繼承于UIView并展示各自獨特的功能颂砸,如UILabel展示文字、UIImageView顯示圖片死姚,這才形成了豐富絢麗人乓、形形色色的程序界面。UIView主要有三方面功能:

  • 渲染區(qū)域內(nèi)容與執(zhí)行動畫
  • 管理子視圖
  • 處理觸摸都毒、手勢等事件

二色罚、iOS界面層次結(jié)構(gòu)

iPhone程序以樹形結(jié)構(gòu)管理其上的控件,每個視圖都置于其父視圖上并管理著自己的子視圖账劲。


view.png

一般而言戳护,程序界面以UIWindow為樹根節(jié)點,管理所有子視圖瀑焦。UIWindow也是UIView的子類腌且,但是UIWindow并不無任何可視化內(nèi)容,它只負責管理其上的子視圖榛瓮。一般而言铺董,每個應用程序只有一個UIWindow。事實上Android禀晓,Cocos2d-x等也是采用這樣的樹形管理策略精续。這種樹形結(jié)構(gòu)的優(yōu)勢在于渲染時通過簡單的樹深度優(yōu)先原則即可正確渲染界面坝锰。另一方面,這樣的樹形結(jié)構(gòu)在消息傳遞方面也是很便捷重付。例如一個觸摸事件放生時顷级,UIWindow首先接收到消息,然后將消息傳遞給響應的子視圖确垫,響應子視圖又再傳給它的子視圖弓颈。通過這樣的層級傳遞,可以效率較高地找到真正的響應對象森爽。

三恨豁、界面更新原理

在與程序的交互中(觸摸屏幕,手勢操作等)爬迟,界面經(jīng)常需要更新橘蜜。這些界面的更新過程是怎樣的呢?


drawing_model.jpg

以觸摸事件為例從觸摸事件的發(fā)生到界面改變主要經(jīng)過八個步驟:

  • 用戶觸摸屏幕
  • 硬件將觸摸事件傳遞到UIKit框架
  • UIKit框架將觸摸事件打包成UIEvent對象并傳遞給響應View
  • View接收到事件后更改視圖內(nèi)容
  • UIKit發(fā)起重新布局視圖
  • UIKit發(fā)起重新渲染繪制視圖
  • 更改的視圖發(fā)送給GPU
  • GPU重新繪制視圖并在屏幕中顯示
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末付呕,一起剝皮案震驚了整個濱河市计福,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徽职,老刑警劉巖象颖,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異姆钉,居然都是意外死亡说订,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門潮瓶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來陶冷,“玉大人,你說我怎么就攤上這事毯辅」÷祝” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵思恐,是天一觀的道長沾谜。 經(jīng)常有香客問我,道長胀莹,這世上最難降的妖魔是什么基跑? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮描焰,結(jié)果婚禮上涩僻,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好逆日,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布嵌巷。 她就那樣靜靜地躺著,像睡著了一般室抽。 火紅的嫁衣襯著肌膚如雪搪哪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天坪圾,我揣著相機與錄音晓折,去河邊找鬼。 笑死兽泄,一個胖子當著我的面吹牛漓概,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播病梢,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼胃珍,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了蜓陌?” 一聲冷哼從身側(cè)響起觅彰,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎钮热,沒想到半個月后填抬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡隧期,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年飒责,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仆潮。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡宏蛉,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鸵闪,到底是詐尸還是另有隱情,我是刑警寧澤暑诸,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布蚌讼,位于F島的核電站,受9級特大地震影響个榕,放射性物質(zhì)發(fā)生泄漏篡石。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一西采、第九天 我趴在偏房一處隱蔽的房頂上張望凰萨。 院中可真熱鬧,春花似錦、人聲如沸胖眷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽珊搀。三九已至冶忱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間境析,已是汗流浹背囚枪。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留劳淆,地道東北人链沼。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像沛鸵,于是被迫代替她去往敵國和親括勺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

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