iOS學(xué)習(xí)筆記之UIWindow、UIView和CALayer之間的聯(lián)系和區(qū)別

版本 時間
V1.0 2018.11.4

前言

正文

UIWindow

簡介

UIWindow是一種特殊的UIView,通常在一個App只有一個UIWindow,但是在一些特殊的需求(比如:在App中需要全局的懸浮控件等)在App中也可以有多個UIWindow

作用

  • 作為容器,承載App程序所要現(xiàn)實的所有視圖
  • 傳遞觸摸消息到其他的UIView或者其他的對象
  • 還可以與UIViewController協(xié)同共奏,以便與完成設(shè)備方向旋轉(zhuǎn)支持等

UIView

簡介

UIView是在UIKit.framework中定義的,UIView繼承于UIResponder,同時UIView是視圖的基類。

作用

  • UIView繼承于UIResponder,UIResponder是用來響應(yīng)事件的,也就是UIView是用來響應(yīng)事件的。
  • UIView屬于UIKit.framework框架,負責(zé)渲染矩形區(qū)域的內(nèi)容,為矩形區(qū)域添加動畫,響應(yīng)區(qū)域的觸摸事件,還涉及布局和管理一個或多個子視圖

CALayer

簡介

CALayer包含在QuartzCore框架中,這是一個跨平臺的框架,既可以用在iOS中又可以用在Mac OS X中。在使用Core Animation開發(fā)動畫的本質(zhì)就是將CALayer中的內(nèi)容轉(zhuǎn)化為位圖從而供硬件操作,所以要熟練掌握動畫操作必須先來熟悉CALayer。

作用

  • CALayer是承載繪制內(nèi)容的對象
  • CALayer可以用來實現(xiàn)動畫效果

總結(jié)

區(qū)別聯(lián)系

UIWindowUIView的子類,UIWindow承載UIView的顯示,UIView的顯示又依賴于CALayer的繪制,但是這僅僅是顯示的關(guān)系,但是當(dāng)程序要完成事件的響應(yīng)的話,需要UIWindow將事件傳遞給UIView進行響應(yīng),CALayer是不具有響應(yīng)功能的。同時CALayer負責(zé)一些動畫的完成。

?著作權(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)容

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