- 基础视图
UIView *layerView = [[UIView alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 200.0f, 200.0f)];
layerView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:layerView];
- 闪现图片
UIImage *image = [UIImage imageNamed:@"test.jpg"];
layerView.layer.contents = (__bridge id _Nullable)(image.CGImage);
- 等比例拉伸以适应图层的距离
layerView.layer.contentsGravity = kCAGravityResizeAspect;
- contentsScale
layerView.layer.contentsGravity = kCAGravityCenter;
layerView.layer.contentsScale = [[UIScreen mainScreen] scale];
- masksToBounds
layerView.layer.masksToBounds = YES;
- contentsRect 相当于裁剪闪现区域(下图闪现为整个图片的左上方部分图片)
layerView.layer.contentsRect = CGRectMake(0.0f, 0.0f, 0.5f, 0.5f);
- contentsCenter
layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);
- 绘图
UIView *layerView = [[UIView alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 200.0f, 200.0f)];
layerView.backgroundColor = [UIColor whiteColor];
[self.view addSubview:layerView];
CALayer *blueLayer = [CALayer layer];
blueLayer.frame = CGRectMake(50.0f, 50.0f, 100.0f, 100.0f);
blueLayer.backgroundColor = [UIColor blueColor].CGColor;
[layerView.layer addSublayer:blueLayer];
blueLayer.delegate = self;
[blueLayer display];
- CALayerDelegate
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
{
CGContextSetLineWidth(ctx, 10.0f);
CGContextSetStrokeColorWithColor(ctx, [UIColor redColor].CGColor);
CGContextStrokeEllipseInRect(ctx, layer.bounds);
}