CALayer 自定義屬性繪製動畫

2022-09-09 00:51:22 字數 773 閱讀 2812

建立circlelayer繼承calayer,新增新屬性angle。

@inte***cecirclelayer :calayer

@property(nonatomic,assign)cgfloatangle;

@end

覆蓋父類方法,新增新的屬性動畫鍵值,返回yes表示給定的屬性發生變化時導致layer的內容重繪

+ (bool)needsdisplayforkey:(nsstring*)key

return[superneedsdisplayforkey:key];

}**繪製部分

- (void)drawincontext:(cgcontextref)ctx

建立cabasicanimation動畫

circlelayer *layer = [circlelayer layer];

layer.frame = cgrectmake(10, 100, 40, 40);

cabasicanimation *animation = [cabasicanimation animationwithkeypath:@"angle"];

animation.fromvalue = @(0.0f);

animation.tovalue = @(2*m_pi);

animation.repeatcount = maxfloat;

animation.duration = 3.0f;

[layer addanimation:animation forkey:@"angle_key"];

CALayer自定義層

自定義層,其實就是在層上繪圖,一共有2種方法,下面詳細介紹一下。方法描述 建立乙個calayer的子類,然後覆蓋drawincontext 方法,使用quartz2d api進行繪圖 pragma mark 繪製乙個實心三角形 4 void drawincontext cgcontextref ct...

自定義CALayer動畫

當我們需要區實現乙個layer的時候,並且需要為其新增乙個屬性動畫的時候,我們需要有這麼幾步操作 首先,我們需要去繼承乙個calayer類,同時實現以下的幾個方法 bool needsdisplayforkey nsstring key 方法來判斷當前屬性改變是否需要重新繪製。如果想實現自定義動畫就...

CALayer4 自定義層

本文目錄 自定義層,其實就是在層上繪圖,一共有2種方法,下面詳細介紹一下。回到頂部 方法描述 建立乙個calayer的子類,然後覆蓋drawincontext 方法,使用quartz2d api進行繪圖 pragma mark 繪製乙個實心三角形 4 void drawincontext cgcon...