(一二 )CALayer的一些特性

2021-07-04 13:06:08 字數 1204 閱讀 8293

1.每個view都自帶乙個calayer,稱為rootlayer,layer可以和實現與view一樣的顯示功能,但是它不繼承uiresponse,也就是說它無法處理事件,所以為了處理事件還是要用view,如果只是顯示,可以選擇layer。

下面的**實現了自定義乙個layer新增到控制器的rootlayer上,layer可以正常顯示。

calayer *layer = [calayer layer];

layer.bounds = cgrectmake(0, 0, 200, 200);

layer.position = cgpointmake(200, 200);

layer.backgroundcolor = [uicolor redcolor].cgcolor;

[self.view.layer addsublayer:layer];

需要注意的是,calayer來自quartzcore框架,是跨平台的,而uicolor、uiimage等來自uikit框架,僅限於ios系統使用,因此要設定背景、layer內容,一定要進行轉換。

下面的**實現了設定layer的內容為一張:

layer.contents = (__bridge id)[uiimage imagenamed:@"header.png"].cgimage;

2.layer還有乙個錨點屬性,可以設定postion的參考點,錨點分為x、y座標,範圍是0~1,(0,0)代表position從左上角開始計算(預設值),(0.5,0.5)則代表以中心點開始計算,這時候postion就相當於center屬性,以此類推,通過錨點屬性可以簡化座標運算。

3.layer還具有隱式動畫特性,所謂隱式動畫,指的是如果uiview上有除rootlayer以外的layer,當那個layer的一些可執行動畫的屬性被修改時,會自動執行動畫,例如transform。如果要消除隱式動畫,需要通過提交事務的方式宣告,下面的**實現了對隱式動畫的取消:

[catransaction begin]; // 開啟乙個事務

[catransaction setdisableactions:yes];

_layer.transform = catransform3dmaketranslation(100, 100, 0);

[catransaction commit]; // 提交事務

CALayer的一些重要屬性

calayer 的一些重要屬性 1.shadowpath 設定 calayer 背景 shodow 的位置 2.shadowoffset shadow 在 x 和 y 軸 上延伸的方向,即 shadow 的大小 3.shadowopacity shadow 的透明效果 4.shadowradius ...

CALayer的一些常用屬性

uibutton button uibutton alloc init button.bounds cgrectmake 0,0,200,200 button.center self.view.center button.backgroundcolor uicolor graycolor self....

python 的一些特性

class student object say this is a student class def init self,name,age 構造器 self.name name self.age age classmethod 類方法 def showclassmethod cls print ...