【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,一經查實,立即刪除!