1

我正在使用 UILabel 来显示文本。有时,它会在文本副本中产生孤儿和寡妇问题,文本的对齐方式设置为“对齐”,连字符因子设置为 1.0。

如何解决孤儿寡妇问题?

我想要带有连字符的对齐文本用于自动换行,并且想要删除孤儿和寡妇。

我已将属性文本设置为标签,标签的大小取决于设备宽度。

图片

这是属性文本的代码:

let paragraphStyle = NSMutableParagraphStyle()
    paragraphStyle.alignment = NSTextAlignment.Justified
    paragraphStyle.hyphenationFactor = 1.0;

let strTwo = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum";

let attrlblTwo = NSAttributedString(string: strTwo,
                                             attributes: [
                                                NSParagraphStyleAttributeName: paragraphStyle,
                                                NSBaselineOffsetAttributeName: NSNumber(float: 0),NSKernAttributeName: 0, NSFontAttributeName : lblTwo.font
        ])
    self.lblTwo.attributedText = attrlblTwo
4

2 回答 2

1

要消除孤儿,请将文本中的最后一个空格替换为不间断空格。不间断空格字符是 U+00A0。您可以通过从编辑菜单中选择“表情符号和符号”来找到它,单击右上角的小部件将字符查看器展开为全尺寸,然后在搜索字段中输入空格。您会看到一些“缺失”字符,这些是空格字符。单击它们,直到找到“No-Break Space”,然后双击它以将其插入到您的代码中。突出显示不间断空格的字符查看器

于 2017-11-15T00:24:13.823 回答
0

你有没有试过用故事板来做这件事?我以前在一个项目中经历过这种情况,在情节提要上有一个 UILabel,将 Text 设置为 Attributed 并将连字符设置为 1 对我有用。在不同的段落长度和 iOS 设备上进行了测试。

于 2017-03-17T06:36:38.820 回答