0

UITableViewCell 内に多色のテキストを描画するビューがあります。色とりどりのテキストを描画するには NSAttributedString を使用していますが、テキストが長すぎてビューに収まらない場合は、最後に表示されている行が切り捨てられ、最後に省略記号が表示されるようにしたいと考えています。

段落スタイルの改行モードに kCTLineBreakByTruncatingTail を設定するだけでよいため、1 行だけを描画する場合は明らかにこれを行うのは非常に簡単です。問題は、テキストを折り返して四角形を埋め、最後の行だけを省略記号で切り捨てたいことです。改行モードを設定すると、テキスト全体が 1 行に制限されます。

私がこれをどのように行うかについて誰か考えがありますか?

JC さん、ご提案ありがとうございます。

4

3 に答える 3

0

ここで作業コードを見つけることができます: https://stackoverflow.com/a/14612598/473067

これは、ヒースが提案したものと同様のアプローチです。しかし、その後、すべてが光沢のあるパッケージに包まれました.

于 2013-08-21T21:13:59.600 に答える
0

UITableViewCell の長方形を使用して CTFrameSetter から CTFrame を作成します。次に、CTFrame のすべての CTLines を取得し、いつ切断されるかを判断できます。省略記号を交換するには、別の CTFrame で描画したままにして、最後の行のオーバーフロー テキストの上に描画します。

于 2011-02-02T06:30:35.787 に答える