YYKit原始碼講解(4)

weixin_34249678發表於2017-12-20

接下來看base資料夾下的Quartz 資料夾內容

這個資料夾下的類不多

CALayer+YYAdd.h

YYCGUtilities


1.CALayer+YYAdd.h

好多函式和UIView 的重合,這裡不做介紹了

- (CGFloat)transformRotation

- (void)setTransformRotation:(CGFloat)v

設定或者獲取旋轉角度

- (CGFloat)transformRotationX

- (void)setTransformRotationX:(CGFloat)v

設定或者獲取x軸旋轉角度

- (CGFloat)transformRotationY

- (void)setTransformRotationY:(CGFloat)v

設定或者獲取y軸旋轉角度

- (CGFloat)transformRotationZ

- (void)setTransformRotationZ:(CGFloat)v

設定或者獲取z軸旋轉角度

- (CGFloat)transformScaleX

- (void)setTransformScaleX:(CGFloat)v

- (CGFloat)transformScaleY

- (void)setTransformScaleY:(CGFloat)v

- (CGFloat)transformScaleZ

- (void)setTransformScaleZ:(CGFloat)v

xyz軸的縮放

- (CGFloat)transformScale

- (void)setTransformScale:(CGFloat)v

平面縮放

- (CGFloat)transformTranslationX

- (void)setTransformTranslationX:(CGFloat)v

- (CGFloat)transformTranslationY

- (void)setTransformTranslationY:(CGFloat)v

- (CGFloat)transformTranslationZ

- (void)setTransformTranslationZ:(CGFloat)v 

平移

- (CGFloat)transformDepth {

return self.transform.m34;

}


- (void)setTransformDepth:(CGFloat)v {

CATransform3D d = self.transform;

d.m34 = v;

self.transform = d;

}

設定深度

這篇文章講解什麼是m34的。 

- (UIViewContentMode)contentMode

- (void)setContentMode:(UIViewContentMode)contentMode

NSString *YYUIViewContentModeToCAGravity(UIViewContentMode contentMode) {

switch (contentMode) {

case UIViewContentModeScaleToFill: return kCAGravityResize;

case UIViewContentModeScaleAspectFit: return kCAGravityResizeAspect;

case UIViewContentModeScaleAspectFill: return kCAGravityResizeAspectFill;

case UIViewContentModeRedraw: return kCAGravityResize;

case UIViewContentModeCenter: return kCAGravityCenter;

case UIViewContentModeTop: return kCAGravityTop;

case UIViewContentModeBottom: return kCAGravityBottom;

case UIViewContentModeLeft: return kCAGravityLeft;

case UIViewContentModeRight: return kCAGravityRight;

case UIViewContentModeTopLeft: return kCAGravityTopLeft;

case UIViewContentModeTopRight: return kCAGravityTopRight;

case UIViewContentModeBottomLeft: return kCAGravityBottomLeft;

case UIViewContentModeBottomRight: return kCAGravityBottomRight;

default: return kCAGravityResize;

}

}

UIViewContentMode  和 kCAGravity 之間做的轉換橋接

- (void)addFadeAnimationWithDuration:(NSTimeInterval)duration curve:(UIViewAnimationCurve)curve

- (void)removePreviousFadeAnimation

增加幾種過度動畫

YYCGUtilities.h

CGContextRef YYCGContextCreateARGBBitmapContext(CGSize size, BOOL opaque, CGFloat scale)

獲取bitmap上下文context 

這裡opaque 要是yes 就沒有透明度了

CGContextRef YYCGContextCreateGrayBitmapContext(CGSize size, CGFloat scale)

建立bitmap上下文,只有灰色的 。

CGFloat YYScreenScale() 

獲取scale

CGSize YYScreenSize()

獲取螢幕大小

還有一些矩陣計算的東東不看了,有時間回來從新看的時候在學習吧,讓剩下部分爛尾吧。

相關文章