为什么NSLineBreakByWordWrapping有时不起作用

时间:2012-11-22 07:04:01

标签: ios uilabel

我创建了一个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”时,换行符不正确。 (“结果”一词分为两行) enter image description here

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

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这也发生在韩国人的角色,字体AppleSDGothicNeo-Bold和其他人。在一个带有拉丁语和韩语单词的独特标签中,对于拉丁语来说,自动换行是有效的,但不适用于韩语。

答案 1 :(得分:1)

文档内容如下:

NSLineBreakByWordWrapping

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