Quartz2D使用(一)

原创 2015年11月20日 11:42:13
Quartz2D使用(一)
 #import "YYlineview.h"


 @implementation YYlineview


 // 当自定义view第一次显示出来的时候就会调用drawRect方法

 - (void)drawRect:(CGRect)rect

 { 

         // 1.取得和当前视图相关联的图形上下文(因为图形上下文决定绘制的输出目标)/

         // 如果是在drawRect方法中调用UIGraphicsGetCurrentContext方法获取出来的就是Layer的上下文

         CGContextRef  ctx=UIGraphicsGetCurrentContext();//不需要*,id

    

         // 2.绘图(绘制直线), 保存绘图信息

         // 设置起点

         CGContextMoveToPoint(ctx, 20100);

         //设置终点

         CGContextAddLineToPoint(ctx, 300100);

         //设置绘图的状态

         //设置线条的颜色为蓝色

         CGContextSetRGBStrokeColor(ctx, 01.001.0);

         //设置线条的宽度

         CGContextSetLineWidth(ctx, 15);

         //设置线条起点和终点的样式为圆角

         CGContextSetLineCap(ctx, kCGLineCapRound);

         //设置线条的转角的样式为圆角

         CGContextSetLineJoin(ctx, kCGLineJoinRound);

         //3.渲染(绘制出一条空心的线)

         CGContextStrokePath(ctx);

    

     //    //注意线条不能渲染为实心的

     //    CGContextFillPath(ctx);

   

         //设置第二条线

         //设置第二条线的起点

         CGContextMoveToPoint(ctx, 50200);

         //设置第二天线的终点(自动把上一条直线的终点当做起点)

         CGContextAddLineToPoint(ctx, 30060);

    

         //设置绘图的状态

     //    CGContextSetRGBStrokeColor(ctx, 1.0, 0.7, 0.3, 1.0);

         //第二种设置颜色的方式

         [[UIColor grayColor] set];

         //设置线条的宽度

         CGContextSetLineWidth(ctx, 10);

         //设置线条的起点和终点的样式

         CGContextSetLineCap(ctx, kCGLineCapButt);

         

         //渲染第二条线的图形到view

         //绘制一条空心的线

         CGContextStrokePath(ctx);

     }

 @Evaend






二、画三角形

#import "YYrectview.h"


 @implementation YYrectview



 - (void)drawRect:(CGRect)rect

 {

         //1.获得图形上下文

         CGContextRef ctx=UIGraphicsGetCurrentContext();

    

         //2.绘制三角形

         //设置起点

         CGContextMoveToPoint(ctx, 20100);

         //设置第二个点

         CGContextAddLineToPoint(ctx, 40300);

         //设置第三个点

         CGContextAddLineToPoint(ctx, 200200);

         //设置终点

     //     CGContextAddLineToPoint(ctx, 20, 100);

         //关闭起点和终点

         CGContextClosePath(ctx);

    

         // 3.渲染图形到layer

         CGContextStrokePath(ctx);

     

    }

 @end





三、画四边形

#import "YYrect.h"


 @implementation YYrect


 - (void)drawRect:(CGRect)rect

 {

         //1.获取图形上下文

         CGContextRef ctx=UIGraphicsGetCurrentContext();

         //2.画四边形

         CGContextAddRect(ctx, CGRectMake(2020150100));

    

         // 如果要设置绘图的状态必须在渲染之前

         //    CGContextSetRGBStrokeColor(ctx, 1.0, 0, 0, 1.0);

         // 绘制什么类型的图形(空心或者实心).就要通过什么类型的方法设置状态

         //    CGContextSetRGBFillColor(ctx, 1.0, 0, 0, 1.0);

    

         // 调用OC的方法设置绘图的颜色

         //    [[UIColor purpleColor] setFill];

         //    [[UIColor blueColor] setStroke];

         // 调用OC的方法设置绘图颜色(同时设置了实心和空心)

         //    [[UIColor greenColor] set];

         [[UIColor colorWithRed:1.0 green:0 blue:0 alpha:1.0] set];

    

    

         //3.渲染图形到layer

         //空心的

         CGContextStrokePath(ctx);

         //实心的

     //    CGContextFillPath(ctx);

    

     }

 @Evaend




四、画圆
(1) 

- (void)drawRect:(CGRect)rect

{

    

    // 1.获取上下文

    CGContextRef ctx = UIGraphicsGetCurrentContext();

    // 画圆

    CGContextAddArc(ctx, 1001005002 * M_PI0);

    

    // 3.渲染 (注意画线只能通过空心来画)

    //    CGContextFillPath(ctx);

    CGContextStrokePath(ctx);

}


(2)

// 画圆

// 1.获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 2.画圆

CGContextAddEllipseInRect(ctx, CGRectMake(501005050));


[[UIColor greenColor] set];


// 3.渲染

//    CGContextStrokePath(ctx);

CGContextFillPath(ctx)



(3)
 
// 画椭圆

// 1.获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 2.画圆

CGContextAddEllipseInRect(ctx, CGRectMake(50100100230));


[[UIColor purpleColor] set];


// 3.渲染

//    CGContextStrokePath(ctx);

CGContextFillPath(ctx);




五、画圆弧

(1)

// 画圆弧

// 1.获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 2.画圆弧

// x/y 圆心

// radius 半径

// startAngle 开始的弧度

// endAngle 结束的弧度

// clockwise 画圆弧的方向 (0 顺时针, 1 逆时针)

//    CGContextAddArc(ctx, 100, 100, 50, -M_PI_2, M_PI_2, 0);

CGContextAddArc(ctx, 10010050M_PI_2M_PI0);

CGContextClosePath(ctx);


// 3.渲染

//     CGContextStrokePath(ctx);

CGContextFillPath(ctx);




(2)

// 1.获取上下文

CGContextRef ctx = UIGraphicsGetCurrentContext();

// 2.画饼状图

// 画线

CGContextMoveToPoint(ctx, 100100);

CGContextAddLineToPoint(ctx, 100150);

// 画圆弧

CGContextAddArc(ctx, 10010050M_PI_2M_PI0);

//    CGContextAddArc(ctx, 100, 100, 50, -M_PI, M_PI_2, 1);


// 关闭路径

CGContextClosePath(ctx);

[[UIColor brownColor]set];



// 3.渲染 (注意画线只能通过空心来画)

CGContextFillPath(ctx);

//    CGContextStrokePath(ctx);

iOS quartz2D 的从零到一学习使用

什么是Quartz2D?二维的绘图引擎 什么是二维?平面 什么是引擎?经包装的函数库,方便开发者使用。也就是说苹果帮我们封装了一套绘图的函数库 同时支持iOS和Mac系统什么意思?用Quartz2D写...
  • u012265444
  • u012265444
  • 2016年08月16日 11:48
  • 1874

Quartz2D 图像处理详解(一)

本文将为大家介绍常见的IOS图像处理操作包括以下四部分:旋转,缩放,裁剪以及像素和UIImage之间的转化,主要使用的知识是quartz2D。Quartz2D是CoreGraphics框架中的一个重要...
  • ffblog
  • ffblog
  • 2015年02月03日 17:20
  • 821

Quartz2D - 基本图形绘制(线条)

Quartz2D在iOS开发中的价值 为了便于搭建美观的UI界面,iOS提供了UIKit框架,里面有各种各样的UI控件 UILabel:显示文字 UIImageView:显示图片 UIBu...
  • github_26672553
  • github_26672553
  • 2016年03月06日 15:00
  • 391

iOS-Quartz2D画图

常说温故而知新,时隔这么久再次看这些基础内容仍然很兴奋!把敲的代码分享出来,希望能对读者提供一丁点启发/** * 裁剪圆形图片 */ -(void)circleIcon{ UIImage...
  • qiuxuewei2012
  • qiuxuewei2012
  • 2016年07月14日 23:04
  • 2486

猫猫学IOS(三十四)UI之Quartz2D画画板的实现

猫猫分享,必须精品原创文章,欢迎转载。转载请注明:翟乃玉的博客 地址:http://blog.csdn.net/u013357243?viewmode=contents 源码:效果:实现过程:首...
  • u013357243
  • u013357243
  • 2015年05月06日 11:01
  • 1663

(四十九)Quartz2D自定义控件

利用Quartz2D来自定义UIImageView: 模仿UIImageView: 设置frame,设置图片。 注意一个细节,自定义的imageView,应该通过重写set方法来设置图片并且重绘...
  • xyt8023y
  • xyt8023y
  • 2015年02月13日 16:46
  • 352

iOS开发之Quartz2D生成PDF-Part2

iOS开发之Quartz2D生成PDF-Part2在上一节当中,我们创建了一个基于Quartz2D的PDF,并在PDF中添加一线条。 在这一节,主要是添加一个logo,和绘制一个table。添加lo...
  • keleyundou
  • keleyundou
  • 2015年08月18日 16:22
  • 687

Quartz2D(一)

代码都在自定义customView1 的 "- (void)drawRect:(CGRect)rect"方法中进行. 下面就直接贴代码: step1:初始化创建自定义的view,用于展示. #...
  • LoveHaloK
  • LoveHaloK
  • 2016年08月02日 17:47
  • 239

浅谈 Quartz2D 在开发中的用处 - 画图形

转载自:http://www.jianshu.com/p/d5183ee5371d 在了解到 Quartz2D 的用途以后是不是打算马上动手?虽然MJ老师说会枯燥,但是自己动起手来其...
  • liangliang2727
  • liangliang2727
  • 2016年09月09日 21:35
  • 457

iOS 之Quartz2D渐变颜色填充

Quartz2D提供了两种渐变填充方法。第一种是使用Quartz自带的Gradient填充方法;第二种是使用自定义的着色器。 这里将先描述如何使用CGGradient对象来做渐变填充。 ...
  • antjumper
  • antjumper
  • 2014年09月19日 15:37
  • 931
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Quartz2D使用(一)
举报原因:
原因补充:

(最多只允许输入30个字)