iOS 文字左右对齐与符号不单独占据一行
2019-11-29 本文已影响0人
某非著名程序员
iOS 在富文本排版时碰到问题:
- 使用单词对齐时,右侧可能出现一个字以上的空白区域,如图1:
- 使用字符对齐时,右侧空白区域在一个字符,但有可能标点单独占据一行,如图2:
希望效果:
- 文字左右对齐
- 符号不要单独占据一行
解决方案:
- 两端对齐:一行代码解决
网上很少讲到NSTextAlignmentJustified,大多在讲NSTextAlignmentNatural。
NSTextAlignmentJustified:保持文字左右对齐,最后一行保持做对齐,但字间距稍有差异,如果仅展示中文和标点符号,效果不错。
NSTextAlignmentNatural:默认对齐。
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.alignment = NSTextAlignmentJustified;//两端对齐
- 下面看下几种方式的效果图:
结论:
- 两端对齐、单词换行和两端对齐的组合都能符合要求
- 字符换行会导致标点单独占据一行,即使使用了组合也不行
下载demo,搜索RichTextComposingViewController类。