首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >多行文字(文字自动换行)与drawAtPoint?

多行文字(文字自动换行)与drawAtPoint?
EN

Stack Overflow用户
提问于 2011-08-16 17:45:01
回答 3查看 2.8K关注 0票数 3

有没有一种用drawAtPoint绘制多行文字的方法?我已经尝试过UILineBreakModeWordWrap,但似乎不起作用?

如何将此代码转换为有效的多行文本??

代码语言:javascript
运行
复制
point = CGPointMake(boundsX, 50);
[self.heading drawAtPoint:point forWidth:labelWidth withFont:mainFont minFontSize:12.0 actualFontSize:NULL lineBreakMode:UILineBreakModeWordWrap baselineAdjustment:UIBaselineAdjustmentAlignBaselines];

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-08-16 17:57:20

drawAtPoint:不支持多行文本。您可以使用drawInRect:方法。

编辑:(将@George Asda的评论复制到此处)

代码语言:javascript
运行
复制
[self.heading drawInRect:(contentRect) withFont:mainFont    
        lineBreakMode:UILineBreakModeWordWrap alignment:UITextAlignmentCenter];
票数 10
EN

Stack Overflow用户

发布于 2015-11-17 15:25:24

代码语言:javascript
运行
复制
[_text drawWithRect:_textRect options:**NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine** attributes:attributes context:nil];
票数 1
EN

Stack Overflow用户

发布于 2011-08-16 17:51:23

这不能使用NSString drawAtPoint方法来完成。从文档中:

使用指定的字体和属性在当前图形上下文中的指定点在单行中绘制字符串。

您是否可以使用简单的UILabel

编辑

您可以这样计算UILabel的高度:

代码语言:javascript
运行
复制
//Calculate the expected size based on the font and linebreak mode of your label
CGSize maximumLabelSize = CGSizeMake(296,9999);

CGSize expectedLabelSize = [yourString sizeWithFont:yourLabel.font 
                    constrainedToSize:maximumLabelSize 
                    lineBreakMode:yourLabel.lineBreakMode]; 

//adjust the label the the new height.
CGRect newFrame = yourLabel.frame;
newFrame.size.height = expectedLabelSize.height;
yourLabel.frame = newFrame;
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7076317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档