- 基础视图
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);
}
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END