如何使用iphone sdk中的corePlot库将CPTAxisLabel包装成两行?
如果文本长度大于 50 个字符,我想以两行显示 CPTAxisLabel。我怎样才能做到这一点?我看到了一种在矩形中绘制字符串的方法。但我不知道如何调用这个方法。 如果以下方法是解决方案,请帮助我如何调用它。否则请为我提供其他方式。
提前致谢 -(void)drawInRect:(CGRect)rect withTextStyle:(CPTTextStyle *)style inContext:(CGContextRef)context {
if ( style.color == nil ) 返回;
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();
}
I want to display CPTAxisLabel intwo lines if the text length is greater than 50 characters. How can i do that? I saw a method to draw a string in a rect. But I don't know how to call this method.
If the following method is the solution for this please help me how to call this. Otherwise please provide me otherway.
Thanks in advance
-(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();
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
无需重新发明轮子 -
CPTTextLayer
可以处理多行文本。在需要换行的位置插入换行符 ('\n')。CPTTextStyle
可以控制文本对齐方式(左、中、右)。No need to reinvent the wheel—
CPTTextLayer
can do multi-line text. Insert newline characters ('\n') where you want line breaks.CPTTextStyle
can control the text alignment (left, center, right).