在 Swift 中旋转 NSString
Rotating NSString in Swift
我正在尝试执行与所附图片类似的操作。
我认为此页面会引出答案
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)
想一想你想做什么:画一条离圆心一定距离的绳子,绕着圆心旋转。因此,将圆心视为原点会很方便。我会执行以下操作:
- 平移 CTM,使原点位于圆心。
- 旋转到正确的角度。
- 在
{d, 0}
处绘制字符串(其中 d
是距文本开始中心的距离。
我正在尝试执行与所附图片类似的操作。
我认为此页面会引出答案
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)
想一想你想做什么:画一条离圆心一定距离的绳子,绕着圆心旋转。因此,将圆心视为原点会很方便。我会执行以下操作:
- 平移 CTM,使原点位于圆心。
- 旋转到正确的角度。
- 在
{d, 0}
处绘制字符串(其中d
是距文本开始中心的距离。