2012-11-22 3 views
5

私はUILabelを作成し、lineBreakModeをNSLineBreakByWordWrappingに設定しましたが、時には1つの単語が2つの行に分割されることがあります。なぜ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; 
    } 

belowsのようなものです。 (単語 "結果"は2行に分割されています) enter image description here

他のフォントに変更すると、再び動作します。それは変だね。

ありがとうございました。

答えて

1

これは韓国語の文字、AppleSDGothicNeo-Boldなどのフォントでも起こっています。ラテン語と韓国語のユニークなラベルでは、ラテン語の場合は単語の折り返しが効いていますが、韓国語の場合はそうではありません。

1

ドキュメントが読み:言葉自体は、単一の行に収まらない場合を除き

NSLineBreakByWordWrapping 

ラッピングは、ワード境界で起こります。

+1

このケースの処理方法:単語自体は1行に収まらない。 – Ecroo

関連する問題