iOS Core Animation學習總結(2)--實現自訂圖層,iosanimation
一. 建立圖層繼承於CALayer,並在子類實現drawInContext方法
@interface CTLayer : CALayer@end@implementation CTLayer-(void)drawInContext:(CGContextRef)ctx{
//畫一個圓 CGContextSetRGBFillColor(ctx, 0, 0, 1, 1); CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 100, 100)); CGContextFillPath(ctx);}@end
在viewcontroller載入視圖時,
CTLayer *layer = [CTLayer layer]; layer.bounds = CGRectMake(0, 0, 300, 300); layer.anchorPoint = CGPointMake(0,0); [layer setNeedsDisplay];//顯示圖層 [self.view.layer addSublayer:layer];
二. 使用代理方式建立
CTLayer *layer = [CTLayer layer]; layer.bounds = CGRectMake(0, 0, 300, 300); layer.anchorPoint = CGPointMake(0,0); layer.delegate = self; //指定代理,該代理可為任意類型 [layer setNeedsDisplay];//顯示layer [self.view.layer addSublayer:layer];
實現代理方法
#pragma mark 代理方法-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{ CGContextSetRGBFillColor(ctx, 0, 0, 1, 1); CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 100, 100)); CGContextFillPath(ctx);}