首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >UILabel中的多行文本

UILabel中的多行文本
EN

Stack Overflow用户
提问于 2009-06-13 07:28:39
回答 26查看 389.4K关注 0票数 465

有没有一种方法可以像UITextView一样在UILabel中使用多行文本,或者我应该使用第二行?

EN

回答 26

Stack Overflow用户

回答已采纳

发布于 2009-06-13 07:43:46

将换行模式设置为自动换行,将行数设置为0

代码语言:javascript
运行
复制
// Swift
textLabel.lineBreakMode = .byWordWrapping
textLabel.numberOfLines = 0

// Objective-C
textLabel.lineBreakMode = NSLineBreakByWordWrapping;
textLabel.numberOfLines = 0;

// C# (Xamarin.iOS)
textLabel.LineBreakMode = UILineBreakMode.WordWrap;
textLabel.Lines = 0;  

恢复了旧答案(供参考和愿意支持iOS 6.0以下版本的开发人员使用):

代码语言:javascript
运行
复制
textLabel.lineBreakMode = UILineBreakModeWordWrap;
textLabel.numberOfLines = 0;

另外:两个枚举值都屈从于0

票数 828
EN

Stack Overflow用户

发布于 2009-06-14 09:27:39

在IB中,将行数设置为0(允许不限制行数)

使用IB在文本字段中键入时,使用"alt- return“插入一个回车符并转到下一行(或者您也可以复制已由行分隔的文本)。

票数 144
EN

Stack Overflow用户

发布于 2011-06-29 17:29:40

我找到的最好的解决方案(对于一个本应在框架中解决的令人沮丧的问题)类似于vaychick的解决方案。

只需在IB或code中将行数设置为0

代码语言:javascript
运行
复制
myLabel.numberOfLines = 0;

这将显示所需的线,但会重新定位标签,使其水平居中(以便1线和3线标签在其水平位置对齐)。要修复该添加,请执行以下操作:

代码语言:javascript
运行
复制
CGRect currentFrame = myLabel.frame;
CGSize max = CGSizeMake(myLabel.frame.size.width, 500);
CGSize expected = [myString sizeWithFont:myLabel.font constrainedToSize:max lineBreakMode:myLabel.lineBreakMode]; 
currentFrame.size.height = expected.height;
myLabel.frame = currentFrame;
票数 55
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/990221

复制
相关文章

相似问题

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