//預設圖層是有陰影的, 只不過,是透明的
_redview.layer.shadowopacity = 1;//
設定陰影的圓角
_redview.layer.shadowradius =10;//
設定陰影的顏色,把uikit轉換成coregraphics框架,用.cg開頭
_redview.layer.shadowcolor = [uicolor bluecolor].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.cornerradius = 50
;_imageview.layer.maskstobounds = yes;
uiimageview中是uiview的主layer上新增了乙個次layer(用來繪製contents),我們設定邊框的是主layer,但是次layer在上變,不會有任何的影響,所以當我們呼叫切割語句的時候,超出邊框意外的都被切割了!!
uiview和layer都有transform屬性,但是他們的所屬有區別,型別也有區別
1.picview.transform是二維的屬性,是cgaffinetransform型別
2.picview.layer.transform是layer級別的三維屬性,是catransform3d型別的,當然也可以做二維的事情,只有旋轉的時候才可以看出3d的效果.
//屬性設定有三種方法旋轉 x,y,z 分別代表x,y,z軸.
catransform3dmakerotation(m_pi, 1, 0, 0
);
//平移
catransform3dmaketranslation(x,y,z)
//縮放
catransform3dmakescale(x,y,z);
//什麼時候用kvc?1.直接使用基本的三維賦值方法
picview.layer.transform = catransform3dmakescale(1, 2.5, 0
);
//2.使用kvc將catransform3dmakescale生成的物件給layer
nsvalue *value = [nsvalue valuewithcatransform3d:catransform3dmakerotation(m_pi, 1, 0, 0
)];[picview.layer setvalue:value forkeypath:
@"transform.scale"];
//3.使用快捷方法設定屬性
[picview.layer setvalue:@5 forkeypath: "
transform.scale.y
"];
當需要做一些快速縮放,平移,二維的旋轉時用kvc。後面forkeypath屬性值不是亂寫的,蘋果文件當中給了相關的屬性.
比如: [_imageview.layer setvalue:@0.5 forkeypath:@"transform.scale"];
//在明白要怎麼選擇之前,我們先了解一下uiview和layer的不同點:建立calayer *layer =[calayer layer];
//設定尺寸和位置
layer.frame = cgrectmake(50, 50, 100, 100
);//
設定背景
layer.backgroundcolor =[uicolor redcolor].cgcolor;
//給layer設定.
layer.contents = (id)[uiimage imagenamed:@"image001
"].cgimage;
//載入繪製
[self.view.layer addsublayer:layer];
,。它是決點calayer身上哪乙個點會在position屬性所指的位置
//下面兩行**就是設定views的 正中間 座標(200,200)
_views.layer.position = cgpointmake(200, 200
);_views.layer.anchorpoint = cgpointmake(0.5, 0.5
);//
下面兩行**就是設定views的 左上角 座標(200,200)
_views.layer.position = cgpointmake(200, 200
);_views.layer.anchorpoint = cgpointmake(0, 0
);//
下面兩行**就是設定views的 右下角 座標(200,200)
_views.layer.position = cgpointmake(200, 200
);_views.layer.anchorpoint = cgpointmake(1, 1);
//具體時間可以用用一張圓形來顯示,然後在這個imageview的layer中進行時針、分針和秒針的繪製。開啟事務
[catransaction begin];
//設定事務沒有動畫
[catransaction setdisableactions:yes];
//設定動畫執行的時長
[catransaction setanimationduration:2
];//
提交事務
[catransaction commit];
//新增秒針
- (void
)addsecond
//時針、分針的新增方式類似,只是設定的寬高有點區別,不再貼出來
//每過一秒,我們的秒針就需要變化位置,所以我們我們需要設定乙個定時器,在開始時每秒執行一次旋轉布局繪製。角度轉換成弧度
#define angle2rad(angle) ((angle) / 180.0 * m_pi)
//每一秒 秒針 旋轉6度
#define perseconda 6
//每一分 分針 旋轉
#define permina 6
//每一小時 時針 旋轉30
#define perhoura 30
//第一分鐘 時針 旋轉0.5
#define perminhour 0.5
//每一秒呼叫一次
- (void
)timechage
iOS核心動畫學習
calayer 所具有而uiview沒有的功能 layer.contents bridge id image.cgimage 單獨新增乙個圖層 calayer 缺省會產生動畫 uiview自帶的圖層 view.layer 之所以沒有動畫,是因為uiview把隱式動畫給禁止了。每個uiview對它關聯...
IOS核心動畫
void basicanimation calayer layer animation.duration 2 animation.delegate self animation.removedoncompletion no animation.fillmode kcafillmodeforwards...
IOS開發核心動畫篇 核心動畫簡介
ios開發ui篇 核心動畫簡介 一 簡單介紹 core animation,中文翻譯為核心動畫,它是一組非常強大的動畫處理api,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的 就可以實現非常強大的功能。core animation是跨平台的,可以用在mac os x和io...