一:
1.單線
1).初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
2).起始點坐标,第一個為上下文,後兩個是坐标,起點坐标
CGContextMoveToPoint(ctx,15, 50);
3)終點坐标,第一個為上下文,後兩個是坐标,終點坐标
CGContextAddLineToPoint(ctx,150, 50);
4).設定線的width
CGContextSetLineWidth(ctx,10);
5).設定線的顔色
CGContextSetRGBStrokeColor(ctx,0, 1,0, 1);
6).畫線,将線展示出來
CGContextStrokePath(ctx);
2.多線
7).初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
8).設定線的寬度
CGContextSetLineWidth(ctx,5);
9).設定連結的樣式
CGContextSetLineJoin(ctx,kCGLineJoinRound);
10).設定連結端的樣式
CGContextSetLineCap(ctx,kCGLineCapRound);
11).定義點數組
CGPoint points[] = {CGPointMake(50,50),CGPointMake(50,100),CGPointMake(100,200),CGPointMake(50,50),};
12).添加點,第一個為上下文,第二個為點的數組,第三個是有效的點數
CGContextAddLines(ctx, points, 4);
13).畫線顯示出來
CGContextStrokePath(ctx);
3.點線
14).初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
15).第一個參數上下問,第二個參數phase在第二次繪制時由第一個參數減去後在繼續繪制,第三個參數為長度數組,第四個參數為有效數量
CGFloat lengths[] = {10,3,20};
CGContextSetLineDash(ctx, 0, lengths, 4);
起始點
CGContextMoveToPoint(ctx,50, 150);
終點
CGContextAddLineToPoint(ctx,70, 600);
16).畫線顯示
CGContextStrokePath(ctx);
4.設定矩形
17).設定矩形的顔色,邊框的顔色
[[UIColorblueColor]setStroke];
18).設定填充的顔色
[[UIColororangeColor]setFill];
UIRectFill(CGRectMake(100,100, 200, 300));
19).設定矩形的大小
UIRectFrame(CGRectMake(100,100, 200, 300));
或者如下:
初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
20).設定填充的顔色
CGContextSetRGBFillColor(ctx,0, 1,0, 1);
21).設定線條的顔色
CGContextSetRGBStrokeColor(ctx,0, 1,1, 1);
22).設定線的寬度
CGContextSetLineWidth(ctx,10);
23).添加矩形
CGContextAddRect(ctx,CGRectMake(100,100, 200, 300));
24).設定填充實作
CGContextDrawPath(ctx,kCGPathFillStroke);
5.圓
25).初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
26).設定填充的顔色
CGContextSetRGBFillColor(ctx,0, 1,1, 1);
27).設定圓的位置和大小
CGContextAddEllipseInRect(ctx,CGRectMake(50,50, 100, 100));
28).填充的效果
CGContextDrawPath(ctx,kCGPathFillStroke);
6.扇形
29).初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
30).設定第一個上下文,第二個三個,表示扇形的圓心坐标,四表示半徑,五和六表示扇形的起始角度和終止角度,參數7表示順時針還是逆時針1是逆時針,
CGContextAddArc(ctx, 160, 200, 100,0, M_PI, 0);
31).設定填充的顔色
CGContextSetFillColorWithColor(ctx, [UIColorblackColor].CGColor);
32).設定填充的顔色
CGContextDrawPath(ctx,kCGPathFillStroke);
7.字
初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
33).設定背景的陰影顔色,第二個參數是陰影的偏移量,第三個參數是模糊度
CGContextSetShadowWithColor(ctx,CGSizeMake(10,10), 5,[UIColororangeColor].CGColor);
34).第一個參數,設定文字的位置,第二個參數是一個字典樣式,用來設定字型的一些屬性
[@"hello world"drawAtPoint:CGPointMake(50,100) withAttributes:@{NSForegroundColorAttributeName:[UIColorredColor]}];
8.貝塞爾曲線
添加一個二階貝賽爾曲線
參數:
CGContextAddQuadCurveToPoint(ctx,200, 50, 300,150);
3階:
初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
39).設定起始點
CGContextMoveToPoint(ctx,50, 200);
40).第二個參數,第三個四個五個六個參數是控制點,第六個和第七個參數表示的是終點的坐标
CGContextAddCurveToPoint(ctx,100, 1000, 200, -510,400, 200);
41).繪圖
CGContextStrokePath(ctx);
二:
NSTimer:補充
1.初始化NSTimer*timer = [NSTimerscheduledTimerWithTimeInterval:1.0/60target:selfselector:@selector(timerAction)userInfo:nilrepeats:YES];
2.一個touch方法
-(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
隻要調用這個方法,則對應的view會重新執行drawRect方法
[self.viewsetNeedsDisplay];
設定開始的時間
[timer setFireDate:[NSDate date]];
}
三:漸變
1.初始化
CGContextRef ctx =UIGraphicsGetCurrentContext();
2.參數一顔色空間
CGColorSpaceRef colorRef =CGColorSpaceCreateDeviceRGB();
3.設定漸變顔色數組
CGFloat components[] = {1,0,0,1,
0,1,0,1,
0,0,1,1,
};
4.位置
CGFloat locations[] = {0,0.5,1};
漸變屬性,
參數一顔色空間.二是顔色.三、位置。四有效數量
CGGradientRef gtf = CGGradientCreateWithColorComponents(colorRef , components, locations, 3);
5.
線性漸變,第一個參數為上下文,第二個參數//最後一個參數取值0-3
CGContextDrawLinearGradient(ctx, gtf, CGPointMake(50, 50), CGPointMake(300, 300), 3);
6.
徑向漸變,屬性同上
CGContextDrawRadialGradient(ctx, gtf,CGPointMake(100,900), 100, CGPointMake(100,200), 150, 0);