翻譯_iOS視圖編程指南(View Programming Guide for iOS)之視圖和窗口體系

官方最新:View Programming Guide for iOS

圖片源自網(wǎng)絡(luò)

前言##

前些日子,我發(fā)布一個(gè)蘋果官方文檔的翻譯效床,之后就有不少同學(xué)朋友問(wèn)我:翻譯蘋果官方文檔能做什么,開發(fā)過(guò)程用到的時(shí)候很少,浪費(fèi)時(shí)間漠趁,還又沒(méi)什么用扁凛。今天,剛好有時(shí)間闯传,就在此申明一下翻譯蘋果官方文檔的實(shí)質(zhì)作用:

  • 首先谨朝,翻譯官方文檔可以提高自身英語(yǔ)閱讀能力和理解能力,增大自己的詞匯量甥绿,良好的英語(yǔ)基礎(chǔ)會(huì)讓工作效率更上一層樓的字币;
  • 其次,對(duì)于iOS開發(fā)而言共缕,官方文檔可以讓你更好地理解每一個(gè)技術(shù)點(diǎn)實(shí)現(xiàn)的基本原理洗出,知其然更要知其所以然,這樣對(duì)iOS開發(fā)的進(jìn)階者和初學(xué)者都有很大的幫助图谷;
  • 最后翩活,翻譯官方文檔可以讓你更加全神貫注,寫代碼的過(guò)中會(huì)出現(xiàn)分神便贵、思維混沌等現(xiàn)象菠镇,這時(shí)候翻譯點(diǎn)英文資料可以讓你靜下心來(lái),我已試過(guò)承璃,很有幫助利耍;

還有一點(diǎn),蘋果官方文檔實(shí)屬繁多盔粹,全部按部就班的翻譯會(huì)耗時(shí)很長(zhǎng)隘梨。為提高此翻譯文章實(shí)質(zhì)作用,特懇請(qǐng)大家能給一些指引舷嗡,大家可以把日常工作用到的章節(jié)私信評(píng)論給我轴猎,我用業(yè)余時(shí)間把這些急需的章節(jié)翻譯出來(lái),貢獻(xiàn)給大家进萄,當(dāng)然税稼,翻譯的文章難免有不足的地方,還望各位好友指出垮斯,以提高文章質(zhì)量。

視圖和窗口體系結(jié)構(gòu)##

  • 視圖和窗口呈現(xiàn)應(yīng)用的交互界面并且處理交互事件只祠。UIKit和其他系統(tǒng)框架提供大量可以使用而很少改動(dòng)或無(wú)需改動(dòng)的視圖兜蠕。你也可以在與標(biāo)準(zhǔn)視圖呈現(xiàn)內(nèi)容不同的地方設(shè)置自定義視圖。

  • 無(wú)論你是使用系統(tǒng)視圖還是自定義視圖抛寝,都需要理解由UIVIewUIWindow類所提供的基礎(chǔ)結(jié)構(gòu)熊杨。這些類提供復(fù)雜的設(shè)施來(lái)管理視圖的布局和顯示曙旭。理解這些設(shè)施是如何工作的對(duì)于確保在應(yīng)用發(fā)生變化時(shí)視圖可以正常工作是非常重要的。

視圖結(jié)構(gòu)的基本原理####

  • 表面上晶府,你可能想去做的就是處理視圖對(duì)象(UIView的子類).一個(gè)視圖對(duì)象規(guī)定了視圖上矩形區(qū)域桂躏,并且在矩形區(qū)域上處理繪畫和觸摸事件。視圖也可以是其他一些視圖的父類川陆,協(xié)調(diào)那些視圖的位置和尺寸剂习。UIView的大部分工作用于管理視圖之間的關(guān)系,但也可根據(jù)自己的需要自定義視圖默認(rèn)的行為较沪。
  • 視圖與核心動(dòng)畫層合力處理視圖內(nèi)容修改和動(dòng)畫顯示鳞绕。在UIKit的每個(gè)視圖都是由一個(gè)圖層對(duì)象(通常都是 CALayer的子類)支持,這些圖層管理視圖的存儲(chǔ)回存以及處理視圖相關(guān)的動(dòng)畫尸曼。大部分的操作都得通過(guò)UIView的接口们何。然而,在那些你需要的控制遠(yuǎn)多于視圖渲染和動(dòng)畫行為的情形下控轿,你需要通過(guò)圖層來(lái)執(zhí)行相應(yīng)的操作冤竹。
  • 為理解視圖和圖層的關(guān)系,下面的例子會(huì)對(duì)你有所幫助茬射。圖1-1展示了從視圖切換例子應(yīng)用到底層核心動(dòng)畫層的關(guān)系鹦蠕。應(yīng)用中的視圖包括窗口(本身也是視圖),一個(gè)作為視圖容器的UIView對(duì)象躲株,一個(gè)圖片視圖片部,一個(gè)展示控制的工具條,一個(gè)條按鈕項(xiàng)(它本身不是視圖霜定,但他管理內(nèi)部的視圖)档悠。每個(gè)視圖都有一個(gè)響應(yīng)圖層,并且可以通過(guò)視圖的 layer屬性訪問(wèn)到其中望浩,由于條按鈕項(xiàng)不是視圖辖所,故不能直接訪問(wèn)它的 layer屬性。在這些圖層對(duì)象的后面是核心動(dòng)畫渲染對(duì)象和用于管理屏幕具體像素的硬件緩沖區(qū)磨德。
    圖1-1例子應(yīng)用視圖的體系結(jié)構(gòu)
    圖1-1例子應(yīng)用視圖的體系結(jié)構(gòu)
  • 使用核心動(dòng)畫圖層對(duì)象對(duì)于性能提升有重要的意義缘回。盡可能少的調(diào)用視圖對(duì)象的繪制代碼,一旦代碼被調(diào)用典挑,就會(huì)被核心動(dòng)畫緩存下來(lái)酥宴,以便以后盡可能的復(fù)用。復(fù)用已渲染好的內(nèi)容可以消除更新視圖所帶來(lái)的高消耗的繪制周期您觉。在動(dòng)畫過(guò)程中拙寡,復(fù)用已存在的內(nèi)容是相當(dāng)重要的。這種復(fù)用機(jī)制與創(chuàng)建新的內(nèi)容相比琳水,消耗的成本更低肆糕。

視圖層次和子視圖的管理####

  • 一個(gè)視圖在呈現(xiàn)自身內(nèi)容之外般堆,還可以作為其他視圖的容器。當(dāng)一個(gè)視圖包含另一個(gè)視圖時(shí)诚啃,兩個(gè)視圖間的父子關(guān)系就創(chuàng)建出來(lái)了淮摔。在關(guān)系中,孩子視圖就是子視圖始赎,父親視圖就是超視圖和橙。這種關(guān)系的創(chuàng)建對(duì)于應(yīng)用的虛擬外表和行為具有重要的意義。
  • 表面上极阅,子視圖掩蓋全部或部分父視圖的內(nèi)容胃碾。如果子視圖是完全不透明的,有子視圖組成的區(qū)域?qū)?huì)完全掩蓋父視圖相應(yīng)地區(qū)域筋搏。如果子視圖部分透明仆百,在屏幕顯示之前,父視圖和子視圖的內(nèi)容就會(huì)混合在一起奔脐。每一個(gè)父視圖都將子視圖存儲(chǔ)在一個(gè)有序的數(shù)組中俄周,這個(gè)順序影響著每個(gè)子視圖可視度。如果兩個(gè)兄弟視圖相互重疊髓迎,最后加入的視圖將會(huì)最先顯示峦朗。
  • 父子視圖的關(guān)系也影響著一些視圖行為。改變父視圖大小會(huì)產(chǎn)生波浪作用排龄,導(dǎo)致子視圖的位置和尺寸也隨之變化波势。當(dāng)父視圖的尺寸發(fā)生變化時(shí),使用視圖的調(diào)整功能以恰當(dāng)?shù)呐渲靡晥D橄维。另一些影響子視圖的變化有:隱藏父視圖尺铣、改變父視圖的透明度、將數(shù)學(xué)變化應(yīng)用到父視圖的坐標(biāo)系統(tǒng)中争舞。
  • 在視圖層次中管理視圖決定著你的應(yīng)用是如何響應(yīng)事件的凛忿。當(dāng)在特定視圖中發(fā)生觸摸事件時(shí),系統(tǒng)將會(huì)把帶有觸摸信息的事件對(duì)象直接發(fā)送到視圖的處理機(jī)制中竞川。然而店溢,如果視圖沒(méi)有處理特定的觸摸事件時(shí),它將會(huì)把事件對(duì)象傳送到父視圖委乌。如果父視圖沒(méi)有處理事件床牧,將會(huì)把事件對(duì)象傳遞到父視圖的父視圖,以此類推遭贸,直到響應(yīng)鏈叠赦。特定的視圖也會(huì)將事件對(duì)象傳遞到介于中間的響應(yīng)對(duì)象,例如視圖控制器。如果沒(méi)有對(duì)象處理該事件除秀,最終達(dá)到拋棄它的應(yīng)用對(duì)象。(寫于16.4.1)

視圖繪制周期####

  • 視圖類使用一種按需繪畫模式呈現(xiàn)內(nèi)容算利。當(dāng)視圖第一次出現(xiàn)在屏幕上册踩,系統(tǒng)將會(huì)請(qǐng)求繪制其內(nèi)容。系統(tǒng)捕獲內(nèi)容的快照效拭,并將此快照作為視圖的虛擬顯示暂吉。如果你從不想改變視圖內(nèi)容,那么視圖的繪制代碼可能從不會(huì)再次調(diào)用缎患∧降模快照被復(fù)用在包括視圖在內(nèi)的大部分操作。如果你改變了這個(gè)內(nèi)容挤渔,你通知系統(tǒng)視圖已發(fā)生改變肮街。視圖將會(huì)重復(fù)繪制視圖和捕獲快照的過(guò)程。
  • 當(dāng)你視圖的內(nèi)容改變時(shí)判导,你沒(méi)有直接重新繪制這些改變嫉父。相反,你可以使用setNeedsDisplay或者setNeedsDisplayInRect:方法使你的視圖失效眼刃。這些方法會(huì)告訴系統(tǒng)這些已改變內(nèi)容的視圖需要在下次機(jī)會(huì)重新繪制绕辖。系統(tǒng)直到當(dāng)前運(yùn)行循環(huán)結(jié)束才進(jìn)行任何繪制操作。

寫在最后

這篇文章翻譯很長(zhǎng)時(shí)間擂红,中間總是斷斷續(xù)續(xù)的仪际,今天終于完成了,心里石頭也算是放下了昵骤。
通過(guò)翻譯文章树碱,一方面讓自己重新學(xué)習(xí)了一下以前的知識(shí),一方面涉茧,也鍛煉了自己的英語(yǔ)翻譯的能力赴恨。雖然翻譯水平很low吧,但我還是會(huì)堅(jiān)持下去的伴栓,加油伦连!

非常感謝您的閱讀,最近開通了微信公眾號(hào)钳垮,為您呈現(xiàn)更加精彩的技術(shù)文章惑淳,個(gè)人公眾號(hào)ID:iOSDevSkills,期待您的加入饺窿!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末歧焦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绢馍,老刑警劉巖向瓷,帶你破解...
    沈念sama閱讀 218,204評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異舰涌,居然都是意外死亡猖任,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門瓷耙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)朱躺,“玉大人,你說(shuō)我怎么就攤上這事搁痛〕げ螅” “怎么了?”我有些...
    開封第一講書人閱讀 164,548評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵鸡典,是天一觀的道長(zhǎng)源请。 經(jīng)常有香客問(wèn)我,道長(zhǎng)轿钠,這世上最難降的妖魔是什么巢钓? 我笑而不...
    開封第一講書人閱讀 58,657評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮疗垛,結(jié)果婚禮上症汹,老公的妹妹穿的比我還像新娘。我一直安慰自己贷腕,他們只是感情好背镇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,689評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著泽裳,像睡著了一般瞒斩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上涮总,一...
    開封第一講書人閱讀 51,554評(píng)論 1 305
  • 那天胸囱,我揣著相機(jī)與錄音,去河邊找鬼瀑梗。 笑死烹笔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抛丽。 我是一名探鬼主播谤职,決...
    沈念sama閱讀 40,302評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼亿鲜!你這毒婦竟也來(lái)了允蜈?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎饶套,沒(méi)想到半個(gè)月后漩蟆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,661評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡凤跑,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,851評(píng)論 3 336
  • 正文 我和宋清朗相戀三年爆安,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仔引。...
    茶點(diǎn)故事閱讀 39,977評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖褐奥,靈堂內(nèi)的尸體忽然破棺而出咖耘,到底是詐尸還是另有隱情,我是刑警寧澤撬码,帶...
    沈念sama閱讀 35,697評(píng)論 5 347
  • 正文 年R本政府宣布儿倒,位于F島的核電站,受9級(jí)特大地震影響呜笑,放射性物質(zhì)發(fā)生泄漏夫否。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,306評(píng)論 3 330
  • 文/蒙蒙 一叫胁、第九天 我趴在偏房一處隱蔽的房頂上張望凰慈。 院中可真熱鬧,春花似錦驼鹅、人聲如沸微谓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)豺型。三九已至,卻和暖如春买乃,著一層夾襖步出監(jiān)牢的瞬間姻氨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工剪验, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留肴焊,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,138評(píng)論 3 370
  • 正文 我出身青樓碉咆,卻偏偏與公主長(zhǎng)得像抖韩,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疫铜,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,927評(píng)論 2 355

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