Как использовать перенос CPTAxisLabel в две строки с помощью библиотеки corePlot в iphone sdk?

Я хочу отображать CPTAxisLabel в две строки, если длина текста превышает 50 символов. Как я могу это сделать? Я видел метод рисования строки в прямоугольнике. Но я не знаю, как вызвать этот метод. Если следующий метод является решением этой проблемы, пожалуйста, помогите мне, как это вызвать. В противном случае предоставьте мне другой вариант.

Заранее спасибо - (void) drawInRect: (CGRect) rect withTextStyle: (CPTTextStyle *) style inContext: (CGContextRef) context {
if (style.color == nil) return;

CGContextSaveGState(context);
CGColorRef textColor = style.color.cgColor;

CGContextSetStrokeColorWithColor(context, textColor);   
CGContextSetFillColorWithColor(context, textColor);

CPTPushCGContext(context);  

UIFont *theFont = [UIFont fontWithName:style.fontName size:style.fontSize];

[self drawInRect:rect
        withFont:theFont
   lineBreakMode:UILineBreakModeWordWrap
       alignment:(UITextAlignment)style.textAlignment];

CGContextRestoreGState(context);
CPTPopCGContext();

}


person Madan Mohan    schedule 24.10.2011    source источник


Ответы (1)


Не нужно изобретать велосипед - CPTTextLayer умеет писать многострочный текст. Вставьте символы новой строки ('\ n') там, где вы хотите разрывать строку. CPTTextStyle может управлять выравниванием текста (слева, по центру, справа).

person Eric Skroch    schedule 25.10.2011
comment
Я не получаю многострочный текст автоматически. У меня есть ярлык среза длиной 80 символов, но он отображает только 50 символов, оставшиеся обрезаны. Если я хочу добавить '\ n', это означает, что мне нужно вычислить длину текста, и я должен добавить \ n, когда длина превышает 50. Пожалуйста, сообщите мне, есть ли другое решение для этого. - person Madan Mohan; 29.10.2011