矩形操作
原文图形的旋转、缩放和平移都是通过以下三个方法实现(统称:矩形操作):
1.旋转:CGContextRotateCTM(<#CGContextRef c#>, <#CGFloat angle#>)
2.缩放:CGContextScaleCTM(<#CGContextRef c#>, <#CGFloat sx#>, <#CGFloat sy#>)
3.平移: CGContextTranslateCTM(<#CGContextRef c#>, <#CGFloat tx#>, <#CGFloat ty#>)
注意:
1、设置矩阵操作必须要在添加图形之前,如果设置在添加图形之后的话,此时它已经画完了,无效
2、所有的矩形操作都是相对整个UIView的Layer层而言的,并不是单独针对当前绘制的图形操作
实例代码:
- (void)drawRect:(CGRect)rect
{
//画四边形
//获取图形上下文
CGContextRef ctx=UIGraphicsGetCurrentContext();
//矩阵操作
//注意点:设置矩阵操作必须要在添加绘图信息之前
//旋转45度
CGContextRotateCTM(ctx, M_PI_4);
//绘图
CGContextAddRect(ctx, CGRectMake(150, 100, 100, 100));
//渲染
CGContextStrokePath(ctx);
}
图片剪切
重要的指令:CGContextClip(ctx);
#pragma mark - 图片剪切
- (void)CircleImage{
//1.获取图形上下文
CGContextRef ctx = UIGraphicsGetCurrentContext();
//2、画圆,以便以后指定可以显示图片的范围
// CGContextAddArc(ctx, 250, 300, 50, 0, M_PI*2, 0);
CGContextAddEllipseInRect(ctx, CGRectMake(250, 300, 100, 100));
//3、指定上下文中可以显示内容的范围就是圆的范围
CGContextClip(ctx);
//4、再添加图片
UIImage *image = [UIImage imageNamed:@"image.jpeg"];
[image drawAtPoint:CGPointMake(200, 250)];
}