2013-03-21 3 views
0

Я могу рисовать в CustomView с NSString использованием drawAtPoint метода:вращать текст в customview

NSString *text = @"text"; 
NSSize textSize = [text sizeWithAttributes:xlabelSet]; //receive the text size 
NSPoint p = NSMakePoint(length - textSize.width/2 , wcszero_y - 20); //define text position considering the text center 
[text drawAtPoint:p withAttributes:xlabelSet]; //draw text at position 

Как повернуть текст на 90 градусов в том же положении? То, что я нашел до сих пор, на самом деле не вращало текст в определенном положении.

+0

Привет Пожиратель Снов, спасибо за ответ. Я просмотрел его, и я не убежден, так как в Mac Developer Library сказано следующее: «Если вы хотите только повернуть объект, который нужно рисовать, нет необходимости создавать аффинное преобразование для этого. Самый прямой способ поворота чертежа - вызов функции CGContextRotateCTM. '. Итак, Aleph7 на правильном пути, но мне нужно выяснить, как это адаптировать к OSX. – JFS

+0

Ваша помощь не помогает вообще. Благодарю. – JFS

ответ

2

Просто применить вращение графического контекста:

CGContextRef context = UIGraphicsGetCurrentContext(); 
CGContextRotateCTM(context, M_PI/2); 

// ... 
[text drawAtPoint:p withAttributes:xlabelSet]; //draw text at position 
+0

Привет, Aleph7, спасибо за ответ. Это похоже на iOS. Есть ли что-то подобное для osx? – JFS

+0

с использованием 'UIGraphicsGetCurrentContext()' дает ошибку 'неявное объявление функции 'UIGraphicsGetCurrentContext' недопустимо в C99'. Что это значит? – JFS

+1

замените первую строку 'CGContextRef context = [[NSGraphicsContext currentContext] graphicsPort];' – Aleph7

Смежные вопросы