建立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...