【CALayer-CALayer的基本屬性 Objective-C語言】

一、接下來,我們來說這個Layer啊,

通知

1.首先,Layer能接觸到的,就是我們之前說截圖啊,就是我們self.view里面,有一個layer屬性,

[self.view.layer renderInContext:(CGContextRef t)];

那個里面,有一個layer屬性,然后呢,是CALayer類型的,

接下來,我們就來學習一下這個layer,

通知

那么,首先啊,CALayer,這一塊兒,

通知

1)好,在iOS當中,你能夠看得見摸得著的東西,基本上都是UIView,比如說,按鈕啊、Label啊、textField啊、圖標啊、imageView,這些東西,都是UIView,

UIView,之所以能夠顯示在屏幕上,之所以你能夠看的到它,之所以有顏色,是因為它內部有一個圖層,它內部有一個圖層,

2)然后呢,在你創建某一個UIView對象的時候,也就是,UIView alloc-init的時候,UIView的內部,系統給我們做的事情,UIView的內部,它會自動的創建一個圖層,這個圖層呢,就是我們“點兒”出來的那個CALayer,“點兒”出來的那個layer對象,就是那個CALayer對象,

3)通過UIView的layer屬性,可以訪問到這個圖層,這是一點啊,

4)UIView,需要顯示到屏幕上的時候,會去調用drawRect:方法,進行繪圖,并且,將所有的內容,繪制到自己的圖層上,繪圖完畢以后,系統會將圖層拷貝到屏幕上,最后完成了UIView的顯示,

5)換句話說,UIView,本身是不具備顯示功能的,之所以能夠顯示,是因為它內部有一個圖層,才能夠顯示,

2.也就是說,你在模擬器上看到的一些東西,比如說這個,

通知

這些東西,你看到的一個紅色的、黃色的、實際上,這個View啊,實際上,并不是它View,在顯示,而是View里面的圖層,layer,在顯示,

先記住啊,UIView本身是沒有顯示功能的,你之所以能看到它,是因為它里面的layer在起作用,

3.CALayer的基本使用

通知

這個layer啊,layer里面呢,會有一些個屬性,一會兒我們會去做一下代碼啊,

把這些屬性啊,給大家去展示一下,

通知

4.然后呢,外面這一塊兒啊,掌握這一塊兒啊,也寫了,CALayer、和、UIView之間的關系,

我們說,layer對象,是UIView里面的一個屬性啊,然后呢,

1)CALayer啊,是負責內容的顯示的,是顯示內容和動畫的,這是CALayer干的事情,

2)UIView呢,僅僅是負責監聽、和、響應事件,

也就是說,我給一個imageView,添加了一個輕敲的手勢,我一點它,它能夠輸出一個方法,那是UIView在去負責監聽、在去負責響應這個事件,

你能夠看得到imageView上面,有一張圖片,是因為它里面有一個layer,是因為它里面有一個layer啊,然后呢,這個時候,可能有同學會問,那既然UIView,不能夠設置顯示功能,UIView是沒有具備顯示功能的話,為什么我們還能夠去設置UIView的backgroundColor、等等一些東西,

我們UIView,能夠設置backgroundColor,僅僅是因為系統為我們方便,給我們拋出來了這個屬性,實際上,你給UIView設置backgroundColor,它的底層,是給你的layer,去設置一個backgroundColor,

系統只是為了我們方便,給我們提供了一個屬性,然后呢,你在UIView里面,看起來能夠設置顏色,實際上,是給它的底層,實際上,是給它的layer,去設置背景色,

再來說一下這個UIView、和、CALayer的問題,

通知

1)一個UIView跟這個CALayer啊,我們能夠看得見UIView,是因為你看到了它的顏色,都是CALayer,并不是UIView,只要你顯示出來的東西,都是CALayer,UIView,僅僅是負責監聽和處理事件的,這一點,面試可能會問,問什么,問“UIView跟CALayer的關系”:

一個是用來顯示,

一個是用來負責監聽、和、響應事件,

你就這么答,沒錯兒,

2)還有一點,我們之前說,UIView里面,drawRect:里面,獲取到的上下文,是什么類型的,我們說,圖片類型的上下文,獲取到的是bitmap類型的,對,實際上,我們說,drawRect:里面,獲取到的上下文,我們說,在UIView里面,寫的東西,從哪兒蹦出來一個layer,實際上,這個layer啊,就是我們說,UIView里面顯示的圖層,所以說,我們這個獲取上下文的時候,我們說,獲取到的這個上下文,的類型,是layer類型的,因為你實際上,是畫到了它這個UIView的layer上了,所以,我們管它叫做layer類型的上下文,這么來的啊,

好,然后呢,這個是關于CALayer的一個簡單的介紹啊,

二、接下來,我們就來說這個CALayer的屬性,

通知

1.好,首先呢,CALayer,我們說,是負責一個UIView顯示的,那么,它的屬性呢,實際上,會比你的UIView要強大很多,為什么這么說,

我們說,UIView,你之所以能看的著,是因為它有一個layer,那雖然我們能夠通過backgroundColor,能夠去設置一個UIView的背景顏色,是因為底層,你給layer,去設置了背景顏色,還有一些屬性,系統沒有拋出來,好,比如說,

1)陰影:shadow

2)圓角:radius

3)邊框寬度和顏色:border

通知

這些東西,你在UIView里面,是“點兒”不出來的,

你“點兒”出來的,可能就是一個backgroundColor,那實際上,它還是給layer去設置的,

layer,實際上,屬性,會比UIView,要強大很多,因為layer本身,就是專門負責顯示的,

2.好,然后呢,接下來,我們就來設置一下layer的這些屬性,

通知

我們新建一份代碼啊,

通知

Name:02-CALayer基本屬性

通知

好,然后呢,在這個里邊兒,我先來寫一段兒代碼,

通知

就是搞一個UIView,搞到屏幕上面去啊,

UIView *redView = [[UIView alloc] init];

通知

redView.frame = CGRectMake(100,100,100,100);

通知

redView.backgroundColor = [UIColor redColor];

通知

[self.view addSubview:redView];

通知

這段兒代碼,沒問題吧,command + R,

通知

好,這是我們這個UIView,就搞定了,

</

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18613.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18613.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18613.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vim安裝與配置教程(解決軟件包Vim沒有安裝可候選)

一、Vim檢測是否安裝 1-輸入vi查看是否安裝&#xff1b; 2-按Tab鍵&#xff0c;顯示以下字符為未安裝&#xff1b; 3-顯示以下字符為已安裝&#xff08;可以看到有Vim&#xff09; 二、Vim安裝過程 1. 打開終端&#xff0c;輸入 sudo apt install vim; 2. 輸入Y/y&#xff…

來聊聊Redis簡單動態字符串SDS

寫在文章開頭 我們都知道redis基于單線程實現的一個高性能內存數據庫,所以了解其底層設計,會讓我們具備一個從微觀的視角極致壓榨redis性能的能力,這其中對于數據結構的設計也是非常巧妙,所以關于redis源碼解析的系列將直接從最基本的字符串的設計說起。 Hi,我是 sharkCh…

母嬰商城購物網站,基于 SpringBoot+Vue+MySQL 開發的前后端分離的母嬰商城購物網站設計實現

目錄 一. 前言 二. 功能模塊 2.1. 前臺功能 2.2. 用戶信息管理 2.3. 商品分類管理 2.4. 商品信息管理 2.5. 商品資訊管理 三. 部分代碼實現 四. 源碼下載 一. 前言 現代經濟快節奏發展以及不斷完善升級的信息化技術&#xff0c;讓傳統數據信息的管理升級為軟件存儲&a…

Python實現多線程下載器

分析&#xff1a;實現?個多線程下載器可以顯著提?數據抓取的效率&#xff0c;特別是當需要下載?量數據時。Python的threading 庫可以幫助輕松實現多線程下載。 Python代碼&#xff1a; 使? requests 庫來下載數據&#xff0c;并使? threading 庫來并?處理多個下載任務。…

盤點好用的國產傳輸軟件,看看哪個適合你

流動讓數據釋放價值&#xff0c;無論什么企業&#xff0c;什么行業&#xff0c;業務的正常開展均是以數據和文件的傳輸為基礎&#xff0c;因此&#xff0c;對企業來說&#xff0c;文件傳輸工具是最基礎但也是最舉重若輕的。在琳瑯滿目的多種國產傳輸軟件中&#xff0c;哪個是最…

Glassnode 內容主管:「減半」后的市場「抑郁」

原文標題&#xff1a;《Finance Bridge: Post-Halving Blues》撰文&#xff1a;Marcin Mi?osierny&#xff0c;Glassnode 內容主管編譯&#xff1a;Chris&#xff0c;Techub News 文章來源香港Web3媒體Techun News 摘要&#xff1a; 每月簡報&#xff1a;4 月&#xff0c;盡…

WPF實現簡單的3D圖形

簡述 Windows 演示基礎 &#xff08;WPF&#xff09; 提供了一種功能&#xff0c;用于根據應用程序要求繪制、轉換 3D 圖形并為其添加動畫效果。它不支持完整的3D游戲開發&#xff0c;但在某種程度上&#xff0c;您可以創建3D圖形。 通過組合 2D 和 3D 圖形&#xff0c;您還可以…

Maven多環境配置與Spring Boot日志定制實戰指南

前言 在軟件開發過程中&#xff0c;根據不同的環境&#xff08;如開發、測試、生產&#xff09;調整配置和日志級別是一項常見的需求。本文將詳細介紹如何在Maven項目中使用profile來管理多環境配置&#xff0c;并結合Spring Boot項目&#xff0c;實現日志級別的靈活定制。這不…

gitlab之docker-compose漢化離線安裝

目錄 概述離線資源docker-compose結束 概述 gitlab可以去 hub 上拉取最新版本&#xff0c;在此我選擇漢化 gitlab &#xff0c;版本 11.x 離線資源 想自制離線安裝鏡像&#xff0c;請穩步參考 docker鏡像的導入導出 &#xff0c;無興趣的直接使用在此提供離線資源 百度網盤(鏈…

14-云原生監控體系-Redis_exporter 監控 MySQL[部署Dashborad告警規則實戰]

文章目錄 環境準備切片集群主從哨兵1. 部署1.1. 二進制方式1.1.1. 下載二進制包1.1.2. 部署1.2. docker-compose 容器方式1.3. 配置連接&認證參數1.3.1. 連接認證參數1.3.2. 配置服務控制 systemd2. 配置到 Prometheus3 Dashboard4. 告警規則

Go語言之GORM框架(三)——Hook(鉤子)與Gorm的高級查詢

Hook(鉤子) 和我們在gin框架中講解的Hook函數一樣&#xff0c;我們也可以在定義Hook結構體&#xff0c;完成一些操作&#xff0c;相關接口聲明如下&#xff1a; type CreateUser interface { //創建對象時使用的HookBeforeCreate() errorBeforeSave() errorAfterCreate() …

Java中的鎖機制詳解:synchronized與ReentrantLock

在Java并發編程中&#xff0c;鎖機制是確保多線程安全訪問共享資源的關鍵手段。Java提供了多種鎖機制&#xff0c;其中最為常用的兩種是synchronized關鍵字和ReentrantLock。下面我將從技術難點、面試官關注點、回答吸引力以及代碼舉例等方面對這兩種鎖機制進行詳細描述。 一、…

【C#】委托

文章目錄 委托自定義委托模板方法&#xff08;工廠模式回調(callback)函數&#xff08;觀察者模式多播&#xff08;multicast&#xff09;委托委托的高級使用使用接口 重構 模板方法代碼注意參考 委托 委托&#xff08;delegate&#xff09;是一種類型&#xff0c;定義了一種方…

實踐部署 浦語·靈筆2 模型,寫作圖文并茂的文章

1 初步介紹 XComposer2 相關知識 浦語靈筆2 是基于 書生浦語2 大語言模型研發的突破性的圖文多模態大模型&#xff0c;具有非凡的圖文寫作和圖像理解能力&#xff0c;在多種應用場景表現出色&#xff0c;總結起來其具有&#xff1a; 自由指令輸入的圖文寫作能力&#xff1a; 浦…

Android ANR Trace日志閱讀分析技巧

什么是Trace日志 Trace日志是指ANR目錄下的一份txt文件 adb pull /data/anr/traces.txt Trace日志有什么用 分析應用ANR無響應的問題&#xff0c; Trace怎么用 Cmd line: com.xx ABI: arm Build type: optimized Zygote loaded classes3682 post zygote classes3750 Intern…

uniapp - 填充頁面

在上一篇文章中&#xff0c;創建了一個空白的文章模塊頁面。在這一篇文章&#xff0c;讓我們來向頁面中填充內容。 目錄 頁面效果涉及uniapp組件1.view2.swiper3.scroll-view4.屬性解讀1) class"style1 style2 .."2) circular單屬性無賦值3) :autoplay"autoplay…

如何關閉MySQL凌晨12點自動彈窗?

要關閉 MySQL 在凌晨 12 點自動彈窗的行為&#xff0c;首先需要確定彈窗的具體原因。 打開“任務計劃程序”&#xff1a; 按 Win R&#xff0c;輸入 taskschd.msc&#xff0c;然后按 Enter。 在左側導航欄中&#xff0c;選擇“任務計劃程序庫”。 查找與 MySQL 相關的任務&…

vite構建build選項配置(2024-05-29)

build.target? 類型&#xff1a; string | string[]默認&#xff1a; modules相關內容&#xff1a; 瀏覽器兼容性 設置最終構建的瀏覽器兼容目標。默認值是一個 Vite 特有的值&#xff1a;modules&#xff0c;這是指 支持原生 ES 模塊、原生 ESM 動態導入 和 import.meta 的…

軟件構造復習的一些經驗筆記

軟件構造復習的一些經驗筆記 術語解釋 LSP原則&#xff08;里氏替換原則&#xff09; 什么是LSP原則&#xff0c;就是A類繼承B類&#xff0c;A類應該比B類的spec&#xff08;規約&#xff09;更強 換句話說&#xff1a;你爹會做魚香肉絲&#xff0c;你爹的手藝遺傳給了你&a…

基于springboot實現醫療掛號管理系統項目【項目源碼+論文說明】

基于springboot實現醫療掛號管理系統演示 摘要 在如今社會上&#xff0c;關于信息上面的處理&#xff0c;沒有任何一個企業或者個人會忽視&#xff0c;如何讓信息急速傳遞&#xff0c;并且歸檔儲存查詢&#xff0c;采用之前的紙張記錄模式已經不符合當前使用要求了。所以&…