drawRect

//取得上下文

   CGContextRef context = UIGraphicsGetCurrentContext();

   //设置路径

   CGContextMoveToPoint(context, 10, 15);//起始点

   CGContextAddLineToPoint(context, 10, 200);//划线

   CGContextSetLineWidth(context, 5);//宽度

   CGContextSetRGBStrokeColor(context, 31/255.0, 118/255.0, 251/255.0, 1);//颜色

   CGContextSetLineCap(context, kCGLineCapRound);//线终点

   CGContextSetLineJoin(context, kCGLineJoinBevel);//连接点

   CGContextClosePath(context);//连接起点和终点

CGContextAddRect(contex, CGRectMake(30, 30, 100, 200));//绘制矩形

   CGContextSetRGBFillColor(contex, .3, .3, .3, 1);//设置填充色

 CGContextAddArc(context, 5, 5, <#半径#>, <#开始弧度#>, <#结束弧度#>, <#方向#>);//绘制圆弧

CGContextAddEllipseInRect( context, CGRectMake(50, 50, 200, 100));//绘制椭圆

设置虚线

  CGContextSetLineDash(<#CGContextRef c#>, <#CGFloat phase#>, <#const CGFloat *lengths#>, <#size_t count#>)//虚线从哪开始,lengths:存放实点和虚点的数组(实,虚,实。。。。)count:lengths元素的个数

   CGFloat lenth[] = {1,1,4,5,10};

   CGContextSetLineDash(ctx, 0, lenth, 5);

//贝塞尔曲线

   //CGContextAddQuadCurveToPoint(context, 200/2, 0, 200, 200);前面两个是控制点的X,Y,后面的是终点的X,Y

  // CGContextAddCurveToPoint(context, 140, 100, 60, -100, 200, 200);前面四个是控制点的X,Y,后面的是终点的X,Y

//绘制

CGContextDrawPath(context, kCGPathStroke);

//水印

创建一个基于位图的上下文

void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

结束上下文

UIGraphicsEndImageContext();

//    NSMutableAttributedString drawInRect:<#(CGRect)#>

//    NSMutableAttributedString drawAtPoint:<#(CGPoint)#>

//    NSString drawInRect:<#(CGRect)#> withAttributes:<#(NSDictionary *)#>

//    NSString drawAtPoint:<#(CGPoint)#> withAttributes:<#(NSDictionary *)#>

//保存上下文状态

   CGContextRef context = UIGraphicsGetCurrentContext();

   CGContextSaveGState(context);//保存上下文状态

   CGContextRestoreGState(context);//取出上下文状态

CGContextClip(context);//切除上述图形以外的东西

//路径

CGMutablePathRef *path = CGPathCreateMutable();//创建路径

   CGPathMoveToPoint(<#CGMutablePathRef path#>, <#const CGAffineTransform *m#>, <#CGFloat x#>, <#CGFloat y#>);//路径起点

   CGPathAddLineToPoint(<#CGMutablePathRef path#>, <#const CGAffineTransform *m#>, <#CGFloat x#>, <#CGFloat y#>)//路径

   CGPathRelease(<#CGPathRef path#>);//释放路径

   CGPathRetain(<#CGPathRef path#>);//拷贝路径

//水印

1)创建一个基于位图的上下文

   /*

    size:绘制图片的大小,这里与bgImage

    opaque:透明度

    scale:放缩

    void UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale);

*/

    2)获取当前位图上下文的图片

   UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

//3)结束上下文

UIGraphicsEndImageContext();


你可能感兴趣的:(drawRect)