Core Animation
簡(jiǎn)介:由Layer Kit 演變而來(lái)冻河,不僅僅用來(lái)做動(dòng)畫。
UIView 與 CALayer 異同
同:都可以管理矩形塊茉帅,管理子圖層叨叙,做一些動(dòng)畫和變換。
異:UIVIew可以處理用戶的交互担敌,CALayer并不清楚響應(yīng)鏈摔敛。
CALayer可以實(shí)現(xiàn)功能
- 陰影,圓角全封,帶顏色邊框
- 3D變幻
- 非矩形范圍
- 透明遮罩
- 多級(jí)非線性動(dòng)畫
CALayer基本屬性
contents 類型 id
// 你可以這樣使用
layer.contents = (__bridge id)[UIImage imageNamed:@"png"].CGImage;
contentGravity 類型 NSString
//kCAGravityCenter
//kCAGravityTop
layer.contentGravity = kCAGravityResizeAspect
contentsScale 類型 CGFloat
//注意 必須手動(dòng)設(shè)置 圖層 contentScale 屬性 否則 Retina 顯示有問題
layer.contentsScale = [UIScreen mainScreen].scale;
//與UIView的clipsToBounds 類似
layer.maskToBounds = YES;
CALayer方法
//fromeLayer 該像素點(diǎn)本身的父圖層
- (CGPoint)convertPoint:(CGPoint)point fromLayer:(CALayer *)layer;
//toLayer 目標(biāo)圖層
- (CGPoint)convertPoint:(CGPoint)point toLayer:(CALayer *)layer;
- (CGRect)convertRect:(CGRect)rect fromLayer:(CALayer *)layer;
- (CGRect)convertRect:(CGRect)rect toLayer:(CALayer *)layer;
/**與下面方法類似*/
- (CGPoint)convertPoint:(CGPoint)point fromView:(UIView *)view;
- (CGPoint)convertPoint:(CGPoint)point toView:(UIView *)view;
- (CGRect)convertRect:(CGRect)rect toView:(UIView *)view;
- (CGRect)convertRect:(CGRect)rect fromView:(UIView *)view;