Quartz 2D繪圖只能在UIView中重寫drawRect:方法中進行繪制,其他地方都無效,會報錯。
繪制過程:
1. 獲取上下文 CGContextRef context = UIGraphicsGetCurrentContext();
2. 添加圖形 CGContextAddRect(context , CGRectMake(50, 50, 100, 100));
3. 繪制圖形 CGContextDrawPath(context ,kCGPathEOFill);
4. 關閉上下文 CGContextClosePath(context);
Quartz 2D 坐標系變換
1. CGContextRotateCTM(CGContextRef c, CGFloat angle)方法可以相對原點旋轉上下文坐標系
2. CGContextTranslateCTM(CGContextRef c, CGFloat tx, CGFloat ty)方法可以相對原點平移上下文坐標系
3. CGContextScaleCTM(CGContextRef c, CGFloat sx, CGFloat sy)方法可以縮放上下文坐標系
注意:
轉換坐標系前,使用CGContextSaveGState(CGContextRef c)保存當前上下文狀態
坐標系轉換後,使用CGContextRestoreGState(CGContextRef c)可以恢復之前保存的上下文狀態
Quartz基本繪圖方法
CGContextBeginPath 開始一個新路徑 CGContextMoveToPoint 設置路徑的起點 CGContextClosePath 關閉路徑 CGContextAddPath 添加路徑 CGContextAddLineToPoint 在指定點添加線 CGContextAddLines 添加多條線 CGContextAddRect 添加矩形 CGContextAddRects 添加多個矩形 CGContextAddEllipseInRect 在矩形區域中添加橢圓 CGContextAddArc 添加圓弧 CGContextAddArcToPoint 在指定點添加圓弧 CGContextAddCurveToPoint 在指定點添加曲線 CGContextDrawPath 繪制路徑 CGContextFillPath 實心路徑 CGContextFillRect 實心矩形 CGContextFillRects 多個實心矩形 CGContextFillEllipseInRect 在矩形區域中繪制實心橢圓 CGContextStrokePath 空心路徑 CGContextStrokeRect 空心矩形 CGContextStrokeRectWithWidth 使用寬度繪制空心矩形 CGContextStrokeEllipseInRect 在矩形區域中繪制空心橢圓 CGContextSetLineWidth 設置線寬 CGContextSetBlendMode 設置混合模式 CGContextSetShouldAntialias 設置抗鋸齒效果 CGContextSetLineCap 設置線條收尾點樣式 CGContextSetLineJoin 設置線條連接點樣式 CGContextSetLineDash 設置虛線