CoreGraphics入門編

2352 ワード

引用:
  • UImitはCore Graphicsフレームワークに依存し、Core Graphicsフレームワークに基づいて実現される
  • でもある.
  • Core Graphicsは実はCベースのAPIフレームワークで、Quartzを描画エンジンとして使用しています.つまり、Core Graphicsはオブジェクト向けの
  • ではないことを意味します.
  • Core Graphicsにはグラフィックコンテキスト(Context)が必要です.キャンバス
  • です.
  • Core Graphicsのグラフィックコンテキスト(Context)はスタック式である.スタックの上部のコンテキスト(キャンバス)にのみ図を描くことができます.

  • 単純な図面
    キャンバスの取得
    CGContextRef context = UIGraphicsGetCurrentContext();//      
    

    ブラシ関連:
    //           
        CGContextSetRGBStrokeColor(context, 1.0, 0, 0, 1);//      
        CGContextSetRGBFillColor(context, 0, 1.0, 0, 1);//     
        CGContextSetLineWidth(context, 2.0);//      
        CGContextSetLineCap(context, kCGLineCapRound);//      
        CGContextSetLineJoin(context, kCGLineJoinRound);//       
        CGFloat lengths[2] = { 18, 9 };
        CGContextSetLineDash(context, 0, lengths, 2);//       
        CGContextSetShadowWithColor(context, CGSizeMake(2, 2), 0, [UIColor blackColor].CGColor);//     
        CGContextDrawPath(context, kCGPathFillStroke);//           
    

    頂点はパスの開始点と終了点を指し、接続点はパスの中の転換点を指します(割引されています).
    パス関連
    ベース:
  • CGPathAddLineToPointこの関数により、複雑な折れ線
  • を描くことができます.
  • CGContextAddPath(context, path);この関数により、コンテキスト(キャンバス)にパスを追加する
  • CGPathMoveToPoint(path, nil, 20, 50);//       (      )
    CGPathAddLineToPoint(path, nil, 20, 100);//    (       )
    CGContextAddPath(context, path);//    context  ,  DrawPath  
    

    関連する描画:
    CGContextAddLineToPoint();//    
    CGContextAddCurveToPoint();//    
    CGContextAddQuadCurveToPoint();//    
    CGContextAddArcToPoint();//    
    CGContextClosePath();//     (         )
    

    提供されるパッケージ:
    CGContextAddRect();//    
    CGContextAddRects();//     
    CGContextAddLines();//    
    CGContextAddEllipseInRect();//    
    CGContextAddArc();//  
    

    関連の描画
    CGContextDrawPath(context, kCGPathFillStroke);//           
    

    メモリの解放
    //    
    CGMutablePathRef path = CGPathCreateMutable();
    // CGPathCreateMutable          Core Fundation Object。     ARC       。          
     CGPathRelease(path);//   
    

    以上、手順は以下の通りです.
  • コンテキスト(キャンバス)
  • を取得する.
  • は、パス(システムをカスタマイズまたは呼び出すAPI)を作成し、コンテキストに追加する.
  • 描画内容の設定(ブラシ色、太さ、塗りつぶし領域色、シャドウ、接続点形状など)
  • を行う.
  • 描画開始(CGcontextDrawPath)
  • リリースパス(CGPathRelease)