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 ...