2015-02-28 4 views
1

J'ai trouvé que lorsque j'utilise CGAffineTransformMakeRotation pour faire pivoter la ligne, la ligne n'est pas modifiée.Pourquoi CGAffineTransformMakeRotation ne fonctionne pas dans Swift?

Ceci est mon code:

func drawLine(drawObj:DrawObj) { 
     var context = UIGraphicsGetCurrentContext(); 
     CGContextSaveGState(context); 

     CGContextSetStrokeColorWithColor(context, drawObj.drawPara.lineColor.CGColor) 
     CGContextSetFillColorWithColor(context, drawObj.drawPara.fillColor.CGColor) 
     let originX = drawObj.left - drawObj.currentWidth/2 
     let originY = drawObj.top - drawObj.currentHeight/2 
     CGContextMoveToPoint(context, originX, originY); 
     let toX = originX + drawObj.currentWidth 
     let toY = originY + drawObj.currentHeight 
     CGContextAddLineToPoint(context, toX, toY); 

     CGContextStrokePath(context); 
     let roation = CGAffineTransformMakeRotation(CGFloat(Double(drawObj.angle)*M_PI/(180))) 
     CGContextConcatCTM(context, roation) 
     CGContextRestoreGState(context); 
} 

Répondre

1

Parce que vous avez fait pivoter le contexte après avoir dessiné la ligne. Si vous souhaitez que la rotation s'applique à la ligne, faites d'abord pivoter le contexte. Une fois la ligne tracée, elle est dessinée.

+0

Merci, je l'ai résolu –