在CALayer中绘制图片,如果不做处理绘制出来的图片都是倒置的。所以要对图片进行处理,使其不再倒立
使用图形上下文形变,解决图片的倒立问题
-(void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx{//这个图层正是上面定义的图层
CGContextSaveGState(ctx);
//图形上下文形变,解决图片倒立的问题
CGContextScaleCTM(ctx, 1, -1);
CGContextTranslateCTM(ctx, 0, -PHOTO_HEIGHT);
UIImage *image=[UIImage imageNamed:@"photo.png"];
//注意这个位置是相对于图层而言的不是屏幕
CGContextDrawImage(ctx, CGRectMake(0, 0, PHOTO_HEIGHT, PHOTO_HEIGHT), image.CGImage);
CGContextRestoreGState(ctx);
}
利用图层形变解决图像倒立问题
layer.transform=CATransform3DMakeRotation(M_PI, 1, 0, 0);
使用KVC来解决图像倒立问题
[layer setValue:@M_PI forKeyPath:@"transform.rotation.x"];