6

我创建了一个 UILabel 并将 lineBreakMode 设置为 NSLineBreakByWordWrapping,但有时一个单词会分成两行。

我的代码如下

    _sentenceLabel.textAlignment = UITextAlignmentCenter;

    if (_sentenceLabel.bounds.size.width > self.bounds.size.width - 100) {
       CGSize size = [_info.sentence sizeWithFont:sentenceFont
                                constrainedToSize:CGSizeMake(self.bounds.size.width - 100, 1000)];
        _sentenceLabel.frame = CGRectMake(0, 0, size.width, size.height);

        _sentenceLabel.numberOfLines = 0;
        _sentenceLabel.lineBreakMode = NSLineBreakByWordWrapping;
    }

当字体名称为@"Gill Sans" 时,换行不正确。(“结果”一词分为两行) 在此处输入图像描述

当我更改为其他字体时,它会再次起作用。真奇怪。

谢谢你的帮助。

4

2 回答 2

1

这也发生在韩文字符上,字体 AppleSDGothicNeo-Bold 和其他字体。在带有拉丁语和韩语单词的独特标签中,对于拉丁语单词,自动换行有效,但不适用于韩语单词。

于 2013-09-26T16:10:00.843 回答
1

文档内容如下:

NSLineBreakByWordWrapping

换行发生在单词边界,除非单词本身不适合单行

于 2014-02-19T10:05:17.450 回答