2011-06-19 9 views
0

私のiOSアプリケーションにカスタムフォントを使用しています。私のビューは、ビューのサイズに応じてフォントの異なるポイントサイズを選択する必要があります。私はあらかじめ計算された昇順に基づいてUIFontサイズを計算する

CGFloat ascender; 

を所定ていると私は基本的にこれを実現するための最良の方法だろう何この

CGFloat calculatedFontSize = [self fontSizeForAscender:ascender]; 
[UIFont fontWithName:@"DINEngschriftStd" size:calculatedFontSize]; 

を決定したいですか?場合

答えて

2

これを試してください。 [aString sizeWithFont:font minFontSize:minSize actualFontSize:&theSizeToUse forWidth:ViewWidth lineBreakMode:UILineBreakModeWordWrap];

theSizeToUseは、初期化されていないCGFloat(つまり、CGFloat theSizeToUse;)です。メソッドのアドレスを渡す必要があります。返されるときは、使用するフォントサイズが含まれます。

+0

グレートヒントを、ありがとうございました! – marimba

1

そうする特に明白な方法はありません。反復的にフォントサイズを変更することができますが、これはちょっと面倒です(幸運にも、浮動小数点数が多くないため、31の試行で間隔の二等分を行うことができます)。一方

、あなたはアセンダは、フォントサイズを直線的に拡張することを前提とした場合、あなたはこの行うことができます。

UIFont * f = [UIFont fontWithName:... size:1]; 
f = [f fontWithSize:ascender/f.ascender]; 
関連する問題