[iOS]UILabel取消自动Trim空格和换行等空白字符

本文介绍了iOS7.0以后UILabel会自动移除文本尾部的空白字符,包括空格、制表符和换行符。针对这一特性,提出了两种常见需求的解决方案:实现文本2倍行距和在文本末尾添加空格并右对齐。提供了解决这两种需求的具体代码实现,涉及重写drawTextInRect方法。
摘要由CSDN通过智能技术生成

iOS7.0以后的UILabel会自动将Text行尾的空白字符全部去除,除了常见的半角空格(\0x20)和制表符(\t)之外,全角空格(\u3000)也被计算在内,甚至连多余的换行符(\r,\n)也被自动去除了。这一点虽然方便直接将控件赋值和无需取值后再trim,但是太过智能化了之后,往往不能满足一些本可以简单实现的需求。




需求1.使用添加\n方式将上下文本连续空两行,即实现文本的2倍行距。

iOS7.0之前解决办法:在每个换行符后面添加一个空格

即如果要显示为:



aaaaaaa
空行
空行
bbbbbb

使用以下格式进行文本赋值



lbl.text = @"aaaaaaa\n\u0020\n\u0020bbbbbb";

iOS7.0之后需要增加,不增加则无效



lbl.numberOfLines = 0; // 0表示行数不固定
lbl.lineBreakMode=UILineBreakModeWordWrap; // 允许换行(可选)

需求2.在所有的UILabel的text后增加一个空格,并使text右对齐。

iOS7.0之前解决办法:直接在text后增加空格即可,即te

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值