Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Way to draw NSString on a curved path? [duplicate]

Is there a set of string attributes I can specify that will draw the text at an angle when I call:

[label drawAtPoint:textStart withAttributes:attributes];
like image 510
Frank Schmitt Avatar asked May 30 '09 18:05

Frank Schmitt


2 Answers

Here's an example that uses a transform to rotate the drawing context. Essentially it's just like setting a color or shadow, just make sure to use -concat instead of -set.

CGFloat rotateDeg = 4.0f;
NSAffineTransform *rotate = [[NSAffineTransform alloc] init];

[rotate rotateByDegrees:rotateDeg];
[rotate concat];

// Lock focus if needed and draw strings, images here.

[rotate release];
like image 125
Marc Charbonneau Avatar answered Jan 03 '23 15:01

Marc Charbonneau


NSString itself doesn't have rotation, but you can rotate the context. The string will always be drawn "horizontally" as far as the coordinate space goes, but what actual direction that corresponds to depends on the context. Just use NSAffineTransform to spin it as needed.

like image 28
Chuck Avatar answered Jan 03 '23 14:01

Chuck