CALayer的基本操作

2021-09-08 18:28:16 字數 1829 閱讀 7552

calayer又稱為層.

在每乙個uiview內部都有乙個layer這樣的屬性.

uiview之所以能夠顯示,就是因為它裡面有這個乙個層,才具有顯示的功能.

我們通過操作calayer物件,可以很方便的調整uiview的一些外觀屬性.

可以給uiview設定陰影,圓角,邊框等等.....

設定陰影

預設圖層是有陰影的,只不過是透明的

redview.layer.shadowopacity = 1;
設定陰影的圓角

redview.layer.shadowradius = 10;
設定陰影的顏色,把uikit轉換成coregraphics的cgcolorref

redview.layer.bordercolor = [uicolor whitecolor].cgcolor;

設定邊框

設定圖層邊框,在圖層中使用coregraphics的cgcolorref

redview.layer.bordercolor = [uicolor whitecolor].cgcolor.

redview.layer.borderwidth = 2;

設定圓角

設定圖層圓角半徑,圓角半徑為寬度的一半,就是乙個圓

redview.layer.cornerradius = 50;
設定圖形邊框

imageview.layer.borderwidth = 2;

imageview.layer.bordercolor = [uicolor whitecolor].cgcolor;

設定的圓角半徑

imageview.layer.cornradius= 50;
裁剪,超出裁剪區域的部分全部裁剪掉

imageview.layer.maskstobounds = yes;
注意: uiimageview當中image並不是直接新增在層上面的.這是新增在layer當中的contents裡

我們設定層的所有屬性它只作用在層上面.對contents裡面的東西並不起作用,所以我們看不到的圓角效果

想要讓有圓角效果,可以吧maskstobounds這個屬性設為yes,

當設定為yes,就會把超過根層以外的東西都給裁剪掉.

只有旋轉的時候才可以看出3d屬性x,y,z分別代表x,y,z軸.

旋轉

catransform3dmakerotation(m_pl,1,0,0);
平移

catransform3dmaketranslation(x,y,z);
縮放

catransform3dmakescale(x,y,z);
可以通過kvc的方式進行設定屬性.

但是catransform3dmakerotation它的值是乙個結構體,所以要把結構體轉換為物件.

nsvalue *value = [nsvalue valuewithcatransform3d:catransform3dmakerotation(m_pi,1, 0, 0);

[imageview.layer setvalue:value forkeypath:@"transform.scale"];

什麼時候使用kvc?當需要一些快速縮放,平移,二維的旋轉時用kvc.

CALayer的基本使用

通過操作calayer物件,可以很方便地調整uiview的一些外觀屬性,比如 陰影圓角大小 邊框寬度和顏色 還可以給圖層新增動畫,來實現一些比較炫酷的效果 calayer使用疑惑 首先calayer是定義在quartzcore框架中的 cgimageref cgcolorref兩種資料型別是定義在c...

iOS UIView的CALayer基本演練

uiview的calayer基本演練的屬性和注意事項 在uiview中建立乙個按鈕uibutton,然後設定uibutton的layer屬性 圓角 邊框 陰影及3d形變屬性 注意 1.在uiview中calayer只是乙個類宣告,因此需要新增quartzcore框架 ios7中已經不需要在匯入了 2...

iOS UIView的CALayer基本演練

uiview的calayer基本演練的屬性和注意事項 在uiview中建立乙個按鈕uibutton,然後設定uibutton的layer屬性 圓角 邊框 陰影及3d形變屬性 注意 1.在uiview中calayer只是乙個類宣告,因此需要新增quartzcore框架 ios7中已經不需要在匯入了 2...