iOS 在富文本排版时碰到问题:
- 使用单词对齐时,右侧可能出现一个字以上的空白区域,如图1:
- 使用字符对齐时,右侧空白区域在一个字符,但有可能标点单独占据一行,如图2:
希望效果:
- 文字左右对齐
- 符号不要单独占据一行
![](https://img.haomeiwen.com/i1387554/d546d036118354bf.png)
![](https://img.haomeiwen.com/i1387554/c4e0f5419d58b7c8.png)
解决方案:
- 两端对齐:一行代码解决
网上很少讲到NSTextAlignmentJustified,大多在讲NSTextAlignmentNatural。
NSTextAlignmentJustified:保持文字左右对齐,最后一行保持做对齐,但字间距稍有差异,如果仅展示中文和标点符号,效果不错。
NSTextAlignmentNatural:默认对齐。
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.alignment = NSTextAlignmentJustified;//两端对齐
- 下面看下几种方式的效果图:
![](https://img.haomeiwen.com/i1387554/4fbae5563f3183f7.png)
![](https://img.haomeiwen.com/i1387554/c0dd23a34761abbd.png)
![](https://img.haomeiwen.com/i1387554/df8d704a8b98ed4f.png)
结论:
- 两端对齐、单词换行和两端对齐的组合都能符合要求
- 字符换行会导致标点单独占据一行,即使使用了组合也不行
下载demo,搜索RichTextComposingViewController类。
网友评论