如何使用iphone sdk中的corePlot库将CPTAxisLabel包装成两行?

发布于 2024-12-11 17:58:23 字数 802 浏览 0 评论 0原文

如果文本长度大于 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

春夜浅 2024-12-18 17:58:23

无需重新发明轮子 - 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).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文