矩形操作
原文圖形的旋轉(zhuǎn)伤极、縮放和平移都是通過以下三個(gè)方法實(shí)現(xiàn)(統(tǒng)稱:矩形操作):
1.旋轉(zhuǎn):CGContextRotateCTM(<#CGContextRef c#>, <#CGFloat angle#>)
2.縮放:CGContextScaleCTM(<#CGContextRef c#>, <#CGFloat sx#>, <#CGFloat sy#>)
3.平移: CGContextTranslateCTM(<#CGContextRef c#>, <#CGFloat tx#>, <#CGFloat ty#>)
注意:
1、設(shè)置矩陣操作必須要在添加圖形之前姨伤,如果設(shè)置在添加圖形之后的話哨坪,此時(shí)它已經(jīng)畫完了,無效
2乍楚、所有的矩形操作都是相對(duì)整個(gè)UIView的Layer層而言的当编,并不是單獨(dú)針對(duì)當(dāng)前繪制的圖形操作
實(shí)例代碼:
- (void)drawRect:(CGRect)rect
{
//畫四邊形
//獲取圖形上下文
CGContextRef ctx=UIGraphicsGetCurrentContext();
//矩陣操作
//注意點(diǎn):設(shè)置矩陣操作必須要在添加繪圖信息之前
//旋轉(zhuǎn)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忿偷、指定上下文中可以顯示內(nèi)容的范圍就是圓的范圍
CGContextClip(ctx);
//4金顿、再添加圖片
UIImage *image = [UIImage imageNamed:@"image.jpeg"];
[image drawAtPoint:CGPointMake(200, 250)];
}