2009-08-31 16 views
1

drawAtPoint(大きな違いはありません)を使用してNSStringを描画しています。 改行モードを設定するパラメータがありますが、切り捨てられた場合に文字列に "..."を追加する方法はありますか?NSString drawAtPoint/drawInRect:切り捨てられた文字列に "..."を追加します

1つのオプションは、文字列が十分に短いかどうかを確認することです。そうでない場合は、文字列の長さ+ 3が最大長になるまで、最後の文字を繰り返し削除します。

もっと良い解決策があると確信しています。誰かアイデア?

- (CGSize)drawAtPoint:(CGPoint)point 
      forWidth:(CGFloat)width 
      withFont:(UIFont *)font 
     lineBreakMode:(UILineBreakMode)lineBreakMode 

そしてlineBreakModeとしてUILineBreakModeTailTruncationを指定:

ベスト、

ハインリッヒ

答えて

1

あなたが別のNSStringメソッドを使用する方が良いと思います。

+0

を使用することができる2つの方法のlineBreakModeのための違いは何ですか? – pablasso

-1

NSStringDrawingUsesLineFragmentOriginの値を持つNSStringDrawingTruncatesLastVisibleLineオプションを使用できます。 drawAtPoint:forWidth:withFont:lineBreakMode:以来の答えを更新

[_text drawWithRect:_textRect options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil]; 
0

は、iOS 7.0以降推奨されていません。代わりに、あなたが今drawInRect:withAttributes:

NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle new]; paragraphStyle.lineBreakMode = NSLineBreakByTruncatingTail; NSDictionary *textAttributes = @{NSFontAttributeName : [UIFont systemFontOfSize:20.0f], NSParagraphStyleAttributeName : paragraphStyle}; [text drawInRect:textRect withAttributes:textAttributes];

関連する問題