• 基础视图
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);

iOS中心动画高档技巧二

  • 等比例拉伸以适应图层的距离
layerView.layer.contentsGravity = kCAGravityResizeAspect;

iOS中心动画高档技巧二

  • contentsScale
layerView.layer.contentsGravity = kCAGravityCenter;
layerView.layer.contentsScale = [[UIScreen mainScreen] scale];

iOS中心动画高档技巧二

  • masksToBounds
layerView.layer.masksToBounds = YES;

iOS中心动画高档技巧二

  • contentsRect 相当于裁剪闪现区域(下图闪现为整个图片的左上方部分图片)
layerView.layer.contentsRect = CGRectMake(0.0f, 0.0f, 0.5f, 0.5f);

iOS中心动画高档技巧二

iOS中心动画高档技巧二

  • contentsCenter
layerView.layer.contentsCenter = CGRectMake(0.25, 0.25, 0.5, 0.5);

iOS中心动画高档技巧二

  • 绘图
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);
}

iOS中心动画高档技巧二