2. Quartz2D 绘制直线
2015-02-17 11:10
120 查看
#import <UIKit/UIKit.h> @interface MyView : UIView @end
#import "MyView.h" @implementation MyView -(void) drawRect:(CGRect)rect{ //1.取出上下文 --当前绘图的位置(设备) CGContextRef context = UIGraphicsGetCurrentContext(); [self drawLine]; } #pragma mark 绘制直线2,使用默认context进行绘图 -(void)drawLine2{ //1. 获取上下文 CGContextRef context = UIGraphicsGetCurrentContext(); //2. 设置路径 //1)设置起始点 CGContextMoveToPoint(context, 50, 50); //2)增加点 CGContextAddLineToPoint(context, 200, 200); CGContextAddLineToPoint(context, 50, 200); //3)关闭路径 CGContextClosePath(context); //3 设置属性 /* UIkit 默认会导入Core Grapthics,UIKit对常用的很多CG方法做了封装 UIColor setStroke 设置变形颜色 UIColor setFill 设置填充颜色 UIColor set 设置边线和填充颜色 */ //设置边线 // [[UIColor redColor]setStroke]; //设置填充 // [[UIColor blueColor]setFill]; [[UIColor greenColor]set]; //4 绘制路径 CGContextDrawPath(context, kCGPathFillStroke); } #pragma mark 绘制直线 -(void) drawLine{ //提示:使用Ref声明的对象,不需要用* //1. 获取上下文 - UIView对应的上下文 CGContextRef context = UIGraphicsGetCurrentContext(); //2. 创建路径并设置路径(可变路径) /** 注意:当我们开发动画的时候,通常需要指定对象运动的路线,然后由动画方法负责实现动画效果 因此,在动画开发中,需要熟练使用路径 */ CGMutablePathRef path =CGPathCreateMutable(); //划线 // 1)设置起始点 CGPathMoveToPoint(path, NULL, 50, 50); // 2)设置中间点 // 3)设置目标点 CGPathAddLineToPoint(path, NULL, 200, 200); CGPathAddLineToPoint(path, NULL, 50, 200); // 4) 设置封闭路径 // a) 直接指定目标点 //CGPathAddLineToPoint(path, NULL, 50, 50); // b)使用关闭路径 CGPathCloseSubpath(path); //3. 将路径添加到上下文 CGContextAddPath(context, path); //4. 设置上下文属性(状态) /** 设置线条颜色 red 0 ~ 1.0 red / 255 green 0 ~ 1.0 green / 255 blue 0 ~ 1.0 blue / 255 alpha 透明度 0 ~ 1.0 0 - 完全透明 1.0 ~ 完全不透明 提示:1)使用RGB颜色设置时,最好不要同时指定RGB和alpha,性能损耗 2) 默认线条和填充颜色都是黑色 */ CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1.0); CGContextSetRGBFillColor(context, 0, 1, 0, 1.0); //设置线条宽度 CGContextSetLineWidth(context, 5.0f); //设置线条的顶点样式 CGContextSetLineCap(context, kCGLineCapRound); //设置线条的链接点样式 CGContextSetLineJoin(context, kCGLineJoinRound); //设置线条虚线样式 /* 虚线参数 context: phase:相位、虚线起始位置,通常使用0,从都开始画 lengths:长度数组 count lengths:数组个数 */ CGFloat lengths[3] = {10,20,30}; CGContextSetLineDash(context, 0, lengths, 3); //5. 绘制路径 /** kCGPathStroke 画线(空心) kCGPathFill 填充(实心) kCGPathFillStroke 即画线又填充 */ CGContextDrawPath(context, kCGPathFillStroke); //6. 释放路径 CGPathRelease(path); } @end
相关文章推荐
- Quartz2D简单绘制之直线&虚线
- Quartz 2d 用CGContextRef 绘制各种图形 (文字、圆、直线、弧线、矩形、扇形、椭圆、三角形、圆角形、贝塞尔曲线、图片)
- iOS开发之Quartz2D 二:绘制直线,曲线,圆弧,矩形,椭圆,圆
- 【iOS】Quartz 2D绘制直线/长方形/椭圆/圆形
- iOS 图形绘制<一> 利用Quartz2D绘制直线
- iOS开发UI篇—Quartz2D简单图形绘制(二)直线,三角形,矩形,扇形,弧,圆
- iOS 解决无法使用Quartz2D绘制1像素直线的问题
- iOS开发UI篇—Quartz2D复杂图形绘制(三) 图片文字,进度条,饼形图,小黄人
- Quartz2D-contex绘制三角形
- 关情纸尾-----Quartz2D-基本线条绘制
- Quartz 2D绘制2D图形和Core Image
- UI进阶--Quartz2D绘制图形的基本使用
- Quartz 2D 绘制基本图形讲解
- Iphone Quartz2D 绘图及绘制文字简介
- 创建和绘制渐变_Quartz 2D
- Quartz 2D 图标的绘制
- IOS之Quartz2D绘图5.绘制UITableViewCell渐变背景
- iOS边练边学--(Quartz2D)基本图形的绘制#附加自定义进度控件的练习
- Quartz2D - 04.利用贝瑟尔路径(UIBezierPath)绘制基本图形
- iOS - Quartz2D - 视图绘制周期