创建UIView子类
Add -> New File.UIView ,起名为2DView,然后到ViewController.xib中修改view的类名称为刚才创建的2DView.
覆写drawRect方法
1. 画线
1) CGContextRef context = UIGraphicsGetCurrentContext();//获得当前view的图形上下文(context) 2) CGContextSetLineWidth(context, 2.0);//制定了线的宽度 3) CGColorSpaceRef colorspace = CGColorSpaceCreateDeviceRGB(); CGFloat components[] = { 0.0, 0.0, 1.0, 1.0};//颜色元素 CGColorRef color=CGColorCreate(colorspace,components);//这两行创建颜色 CGContextSetStrokeColorWithColor(context, color);//使用刚才创建好的颜色为上下文设置颜色 ps:创建颜色可以用下面代替,效果一样
CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor);
4) CGContextMoveToPoint(context, 0, 0);//设置线段的起始点 CGContextAddLineToPoint(context, 300, 400);//设置线段的终点
上述代码指定了线段的宽度、颜色、路径,。接下来就要执行绘制操作,并且释放颜色空间:
1 CGContextStrokePath(context);//绘制 2 CGColorSpaceRelease(colorspace); 3 CGColorRelease(color);
接下来执行!将会看到屏幕上有根蓝色线段。
2. 画path
你也许注意到了,上述画线的时候,我们的路径是通过两个点来指定的。定义一个包含了很多点路径可以使我们能够绘制一些列的连接的直线段,通过重复调用CGContextAddLineToPoint()函数。曲线也可以被添加到一个形状中,例如CGContextAddArc();
下面代码将创建一个菱形:
1 CGContextRef context = UIGraphicsGetCurrentContext(); 2 3 CGContextSetLineWidth(context, 2.0); 4 5 CGContextSetStrokeColorWithColor(context, [UIColor blueColor].CGColor); 6 7 CGContextMoveToPoint(context, 100, 100); 8 CGContextAddLineToPoint(context, 150, 150); 9 CGContextAddLineToPoint(context, 100, 200); 10 CGContextAddLineToPoint(context, 50, 150); 11 CGContextAddLineToPoint(context, 100, 100); 12 13 CGContextStrokePath(context);