重複の可能性:
Objective C での文字列のピクセル幅の測定
[string drawInRect:] メソッドを使用しており、文字列をそのサイズに収まる最大長に切り詰めたいと考えています。すべての文字の幅が異なるため、1 行に何文字あるかを調べるのは簡単ではありません。文字列が見えなくなった場所を見つけたい理由は、文字列の末尾に省略記号を追加できるようにするためです。
重複の可能性:
Objective C での文字列のピクセル幅の測定
[string drawInRect:] メソッドを使用しており、文字列をそのサイズに収まる最大長に切り詰めたいと考えています。すべての文字の幅が異なるため、1 行に何文字あるかを調べるのは簡単ではありません。文字列が見えなくなった場所を見つけたい理由は、文字列の末尾に省略記号を追加できるようにするためです。
NSString Additions ReferencedrawInRect:withAttributes:
のドキュメントを参照してください。「定数」の下に、必要なことを自動的に行うオプションがあります。
NSStringDrawingTruncatesLastVisibleLine
テキストが指定された境界に収まらない場合は、省略記号を切り捨てて表示されている最後の行に追加します。
@Mundi によって提供された解決策が不十分な場合、またはテキストがどれだけ収まるかを知る必要がある場合に使用できます。
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
ループ内で、テキストのサイズが収まるまで縮小します。
この文字列をどこで使用しますか? UILabel にある場合は、NSLineBreakMode = NSLineBreakByTruncatingTail を使用できます。