iOS-阅读器系列

iOS 文字左右对齐与符号不单独占据一行

2019-11-29  本文已影响0人  某非著名程序员

iOS 在富文本排版时碰到问题:

  1. 使用单词对齐时,右侧可能出现一个字以上的空白区域,如图1:
  2. 使用字符对齐时,右侧空白区域在一个字符,但有可能标点单独占据一行,如图2:

希望效果:

  1. 文字左右对齐
  2. 符号不要单独占据一行
图1_单词对齐.png 图2_使用字符对齐.png

解决方案:

  1. 两端对齐:一行代码解决
    网上很少讲到NSTextAlignmentJustified,大多在讲NSTextAlignmentNatural。
    NSTextAlignmentJustified:保持文字左右对齐,最后一行保持做对齐,但字间距稍有差异,如果仅展示中文和标点符号,效果不错。
    NSTextAlignmentNatural:默认对齐。
NSMutableParagraphStyle * paragraphStyle = [[NSMutableParagraphStyle alloc] init];
paragraphStyle.alignment = NSTextAlignmentJustified;//两端对齐
  1. 下面看下几种方式的效果图:
两端对齐 字符换行、两端对齐 单词换行、两端对齐

结论:

  1. 两端对齐、单词换行和两端对齐的组合都能符合要求
  2. 字符换行会导致标点单独占据一行,即使使用了组合也不行

下载demo,搜索RichTextComposingViewController类。

上一篇下一篇

猜你喜欢

热点阅读