CALayer設定圓角

2022-08-05 05:03:12 字數 3517 閱讀 1330

calayer,無論是view,button,label,textfield等都有這個屬性。通過設定其layer來控制各種屬性,比如:bounds、position、backgroundcolor、cornerradius等等。

以下設定calayer的圓角及其他屬性。

//

建立layer

calayer *layer =[calayer layer];

//設定bounds

layer.bounds = cgrectmake(0, 0, 100, 100

);

//設定中心點位置(預設中心點)

layer.position = cgpointmake(200, 200

);

//背景顏色

layer.backgroundcolor =[uicolor orangecolor].cgcolor;

//新增到檢視上

[self.view.layer addsublayer:layer];

圖一

圖二

**如下:

1

//1.圓角

2 layer.cornerradius = layer.bounds.size.width/2.0;3

設定內容

5//需要橋接

6 layer.contents = (__bridge id

)(image.cgimage);7//

3.裁剪

8 layer.maskstobounds =yes;9//

4.設定邊框(邊框跟著變成了圓的)

10 layer.bordercolor =[uicolor orangecolor].cgcolor;

11 layer.borderwidth = 5

.f;12

//5.陰影和邊界剪裁是不能同時使用的,因為陰影本身就是渲染到邊界外面的。 因此要重新用乙個圖層

13 calayer *shadowlayer =[calayer layer];

14//

陰影bounds、position與layer.bounds,layer.position相同

15 shadowlayer.bounds =layer.bounds;

16 shadowlayer.position =layer.position;

17//

這裡也是重點:陰影需要有剪裁,如果不剪裁,就會出現原始模樣

18 shadowlayer.cornerradius =layer.cornerradius;

19 shadowlayer.backgroundcolor =[uicolor whitecolor].cgcolor;

20//

此處將shadowlayer插入到layer之下

21[self.view.layer insertsublayer:shadowlayer below:layer];

22//

設定陰影--顏色、偏移量、透明度

23 shadowlayer.shadowcolor =[uicolor graycolor].cgcolor;

24 shadowlayer.shadowoffset = cgsizemake(8, 8

);25 shadowlayer.shadowopacity = 1.f;

在設定的時候,應該注意以下幾點:

陰影和邊界剪裁是不能同時使用的,因為陰影本身就是渲染到邊界外面的。

因此要重新用乙個圖層。

陰影需要有剪裁,如果不剪裁,就會出現原始模樣。

將shadowlayer插入到layer之下

接下來進行操作,**如下:

1

位移 旋轉 縮放2//

6.1.1位移

3 layer.transform = catransform3dmaketranslation(-100, 100, 0);4

.2疊加位移(在現有基礎上變化,繼6.1.1以後 恢復原來位置)

5 layer.transform = catransform3dtranslate(layer.transform, 100, -100, 0);6

旋轉 (-1,0,1) 倒著轉,不轉,正著轉

7 layer.transform = catransform3dmakerotation(m_pi_4, 0, 1, 0);8

縮放(以中心點縮放,view也是)

9 layer.transform = catransform3dmakescale(.5, .5, .5);

以上是對layer進行操作,由於將其設定為圓,當其旋轉的時候是看不到它的變化的,但是放一張就可以看出來。

1

近大遠小

2 _translayer =[calayer layer];

3 _translayer.bounds = cgrectmake(0, 0, 100, 100

);4 _translayer.position = cgpointmake(100, 100

);5 _translayer.backgroundcolor =[uicolor blackcolor].cgcolor;

6[self.view.layer addsublayer:_translayer];7//

立體感覺,近大遠小

8 _trans =catransform3didentity;9//

300.f指的是到螢幕距離-一般是 800

10 _trans.m34 = 1/100.f;

_translayer設定為全域性的變數。 1 _link =[cadisplaylink displaylinkwithtarget:self selector:@selector(time)] ;

此處轉動比較慢,容易看出近大遠小的效果。如果需要轉動比較快,改變每秒鐘的中的那個角度即可。( m_pi * 自定義可變 * 1/rate)

UIView 設定圓角

直接看 viewt.layer.cornerradius 10 設定那個圓角的有多圓 viewt.layer.borderwidth 10 設定邊框的寬度,當然可以不要 viewt.layer.bordercolor uicolor redcolor cgcolor 設定邊框的顏色 viewt.la...

IOS 圓角設定

ios 系統自帶的 view 元件都是正方形的,看起來都太生硬,有時候我需要變成圓角形式,如下圖 具體的實現是使用quartzcore庫,下面我具體的描述一下實現過程 實現 標頭檔案 import import inte ce ipad webwiewviewcontroller uiviewcon...

UiSearchBar圓角設定

有時我們可能會遇到這樣的需求 如圖 來實現上面的效果 具體實現思路是我們得到uisearchbar 的子檢視 uitextfield來設定其圓角,在系統的 uisearchbar 中uitextfield 是這樣的命名的 searchfield 所以我們只要利用kvc得到就可以,具體實現 如下 ui...