私はカスタムUIView
クラスを持っていて、- (void)drawRect:(CGRect)rect
にいくつかのテキストを描きたいと思います。しかし、私はテキストブロックがシステムフォントサイズ12で最大幅84pxに制限されることを望みます。テキストがこの幅を超えるなら、私はそれをカットし、最後の3文字を "..."にします。与えられたフォントと矩形の文字列長を取得する
例:
"This is some text" // length okay
"Information co..." // length truncated
私はNSString
さん- (CGSize)sizeWithFont:(UIFont *)font
を通じて与えられたフォントで文字列の幅を計算することができることを知っているが、どのように私は84px幅の最大文字列の長さを得ることができますか?
のための信頼できる手がかり。あなたはおそらく6 'X'文字と同じ幅で10 '私'文字を言うことに合うかもしれません –
[このブログ](http://joshjustice.wordpress.com/2010/12/20/monospace-fonts-on- iOS /)では、モノスペースフォントはiOSではモノスペースではないと言っています:/ /あなたは使用したいすべての文字列に対して 'sizeWithFont:'を使う方が良いでしょう。 –
方法が必要です。 「ウイラーベル」はそれをやっている。正しい長さのバイナリ検索を行うことができました。長さが適合するまでループして再試行しましたが、それは私には醜いようです... – user826955