如何在使用NSString stringWithFormat的UILabel中正确插入换行符
UILabel换行失效、文本截断解决方法
问题根因
文本截断、\n换行后剩余内容消失的问题和主线程修改文本的逻辑无关,是UILabel的默认配置仅支持单行显示导致的。
解决步骤
方式1:在故事板中配置
- 选中故事板内对应的UILabel控件,打开属性检查器(Attributes Inspector)
- 将
Lines属性从默认值1改为0,代表支持任意行数的多行文本显示 - 将
Line Break属性从默认的截断模式改为Word Wrap(按单词换行)或Character Wrap(按字符换行) - 检查控件的自动布局约束:不要固定UILabel的高度,仅固定左、上、右三个方向的边距即可,让控件高度可以随文本内容自动撑开
方式2:通过代码配置
你可以在视图加载的初始化方法(比如viewDidLoad)中添加以下配置代码:
// 允许显示无限多行 hello.numberOfLines = 0; // 设置换行模式为按单词换行 hello.lineBreakMode = NSLineBreakByWordWrapping;
验证效果
完成上述配置后,你原本的主线程修改文本的代码不需要调整,\n换行符会正常生效,5秒后文本会自动分成两行完整显示,不会出现截断或内容消失的问题。
内容的提问来源于stack exchange,提问作者programcode
相关产品推荐
相关产品推荐

