2015-05-07 93 views
0

我正在嘗試做類似附加圖像的事情。 I am the one who knocks.在Swift中旋轉NSString

我認爲這頁會導致答案

http://www.informit.com/articles/article.aspx?p=2149190&seqNum=13

Rotating a NSString in drawRect

Drawing rotated text with NSString drawInRect

但將objC轉換爲swift很麻煩。我可以很容易地繪製我的箭頭,但讓NSString旋轉然後翻譯是有問題的。它做奇怪的事情像抽出屏幕,不對角度等

我已經試過這和許多變化

CGContextSaveGState(context) 
    CGContextRotateCTM(context, dTheta[i]) 
    CGContextTranslateCTM(context, -s.sizeWithAttributes(attributes).width/2.0, -radiusY) 
    s.drawAtPoint(CGPoint(x: x + xOffset*0.0 , y: y + yOffset*0.0), withAttributes: attributes) 
    //s.drawAtPoint(CGPointMake(0, 0), withAttributes: attributes) 
    CGContextRestoreGState(context) 

回答

2

想想你想做什麼:從繪製字符串一段距離圓的中心,圍繞圓心旋轉。所以,把圓心作爲原點是很方便的。我會做以下事情:

  1. 翻譯CTM,以便原點位於圓的中心。
  2. 旋轉到正確的角度。
  3. {d, 0}(其中d是從中心其中文本應該開始的距離繪製的字符串。
+0

感謝。我的徑向線並不現在顯示。我使用單獨的背景下,確實'CGContextSaveGState(contextLines) ''最後''CGContextRestoreGState(contextLines)''但沒有快樂 –

+1

我會在文字同時畫線,只記得你已經旋轉了CTM,所以你會沿着'x '軸,即從原點'{0,0}'到點'{d,0}'。 – Caleb

+0

謝謝,幾乎在那裏,我發現由於某種原因屬性顏色沒有被尊重。 drawAtPoint(CGPoint(x:radius,y:0), withAttribu tes:[NSForegroundColorAttributeName:UIColor.yellowColor()])'行應該是黃色的,但他們是黑色的? –