iOS開發UI篇—Quartz2D使用(圖檔剪切)
一、使用Quartz2D完成圖檔剪切
1.把圖檔顯示在自定義的view中
先把圖檔繪制到view上。按照原始大小,把圖檔繪制到一個點上。
代碼:
1 - (void)drawRect:(CGRect)rect
2 {
3 UIImage *image2=[UIImage imageNamed:@"me"];
4 [image2 drawAtPoint:CGPointMake(100, 100)];
5 }
顯示:

2.剪切圖檔讓圖檔圓形展示
思路:先畫一個圓,讓圖檔顯示在圓的内部,超出的部分不顯示。
注意:顯示的範圍隻限于指定的剪切範圍,無論往上下文中繪制什麼東西,隻要超出了這個範圍的都不會顯示。
1 - (void)drawRect:(CGRect)rect
2 {
3 //畫圓,以便以後指定可以顯示圖檔的範圍
4 //擷取圖形上下文
5 CGContextRef ctx=UIGraphicsGetCurrentContext();
6 CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 50, 50));
7
8 //指定上下文中可以顯示内容的範圍就是圓的範圍
9 CGContextClip(ctx);
10 UIImage *image2=[UIImage imageNamed:@"me"];
11 [image2 drawAtPoint:CGPointMake(100, 100)];
12 }
3.剪切圖檔讓圖檔三角形展示
1 - (void)drawRect:(CGRect)rect
2 {
3
4 //畫三角形,以便以後指定可以顯示圖檔的範圍
5 //擷取圖形上下文
6 CGContextRef ctx=UIGraphicsGetCurrentContext();
7 // CGContextAddEllipseInRect(ctx, CGRectMake(100, 100, 50, 50));
8 CGContextMoveToPoint(ctx, 100, 100);
9 CGContextAddLineToPoint(ctx, 60, 150);
10 CGContextAddLineToPoint(ctx, 140, 150);
11 CGContextClosePath(ctx);
12
13
14 //注意:指定範圍(也就是指定剪切的方法一定要在繪制範圍之前進行調用)
15 //指定上下文中可以顯示内容的範圍就是圓的範圍
16 CGContextClip(ctx);
17 UIImage *image2=[UIImage imageNamed:@"me"];
18 [image2 drawAtPoint:CGPointMake(100, 100)];
19 }