4

属性付き文字列に複数の改行が含まれている attributedText を持つ UITextView があります。

NSMutableAttributedString *info = [[NSMutableAttributedString alloc] initWithString:@""];

NSAttributedString *title = [[NSAttributedString alloc] initWithString: [NSString stringWithFormat:@"%@\n", item.title] attributes:titleAttributes];

NSAttributedString *description = [[NSAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@\n\n", description] attributes:descriptionAttributes]

[info appendAttributedString:bioItemTitle];
[info appendAttributedString:bioItemDescription];

textView.attributedText = info;

textView の textContainer の lineBreakMode を NSLineBreakByTruncatingTail に設定しました。

textView.textContainer.lineBreakMode = NSLineBreakByTruncatingTail;

textView の textContainer にも最大行数があります。

textView.textContainer.maximumNumberOfLines = 8;

問題は、textView の 8 行目が改行であり、文字行ではない場合に発生します。textContainer は、改行を削除して次の行の文字に置き換えることで切り詰めます。

lineBreakMode を設定しながら新しい行を保持するにはどうすればよいですか?

スクリーンショットを見る

4

2 に答える 2

3

UILabelの代わりに使ってみてくださいUITextView。新しい行の切り捨てに関しては、よりうまくいくようです。

于 2016-04-12T15:40:24.117 に答える
1

まだ解決策ではないかもしれませんが、おそらく回避策であり、とにかくうまくいかないかもしれませんが、何でも試してみてください。

  • テキスト ビューとそのコンテナーのサイズを調整するために、フレーム/自動レイアウトに変更しmaximumNumberOfLinesて依存します。おそらく、テキスト コンテナーのプロパティを に設定することと組み合わせて使用​​します。0heightTracksTextViewtrue

  • 改行のみを含む行の先頭に、水平方向の空白または不可視文字を挿入します#hacky

于 2016-04-07T17:02:39.507 に答える