图层】自定义图层的两种方式

想要自定义图层,只需要构建一个类继承CALayer方法

如果让自定义图层初始化上面就有画好的图形,有两种办法

重写drawInContext方法

自定义的图层下面的方法,然后必须自定义的图层对象显示调用 [layer setNeedsDisplay]然后才会调用这个方法;

自定图层文件

– (void)drawInContext:(CGContextRef)ctx {CGContextSetRGBFillColor(ctx, , 0, 50, 50));//画圆CGContextFillPath(ctx);}

控制器文件

TestLayer *layer = [TestLayer layer];layer.bounds = CGRectMake(0, 0, 100, 100);layer.position = CGPointMake(100, 100);layer.anchorPoint = CGPointMake(0, 0);layer.backgroundColor = [UIColor blueColor].CGColor;layer.cornerRadius = 10;[layer setNeedsDisplay];//必须要显示调用这个方法,才会调用上面的那个方法[self.view.layer addSublayer:layer];使用代理

首先代理控制器不需要遵循协议,因为这个协议是一个分类,,所有的NSObject都实现了

控制器实现代理的方法

#pragma marks -实现代理的方法- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {CGContextSetRGBFillColor(ctx, 1, 0, 0, 1);CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, 50, 50));CGContextFillPath(ctx);}

调用

TestLayer *layer = [TestLayer layer];layer.bounds = CGRectMake(0, 0, 100, 100);layer.position = CGPointMake(100, 100);layer.anchorPoint = CGPointMake(0, 0);layer.backgroundColor = [UIColor blueColor].CGColor;layer.cornerRadius = 10;layer.delegate = self;[layer setNeedsDisplay];//必须显示调用,不然也不会调用代理的方法[self.view.layer addSublayer:layer];

一个人去旅行,而且是去故乡的山水间徜徉。

图层】自定义图层的两种方式

相关文章:

你感兴趣的文章:

标签云: