私はいくつかのStackoverflow質問を見ましたが、人々はboundingRectWithSizeに問題がありますが、それらのどれも私の問題ではありません。boundingRectWithSizeが時々高さが約1ラインの高さを返します
次のコードでは、高すぎる1行のテキストの高さを計算することがよくあります。例えば
CGFloat height = [label.attributedText
boundingRectWithSize:CGSizeMake(label.width, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
context:nil].size.height;
、ストリングマップタイプ:USGSトポは私のビューの約半分の幅であり、1ライントール(〜18個のピクセル)であるべきであるが、2行の高さを有する終わります( 〜36個のピクセル):私も代わりNSAttributedStringのNSStringのを使用して高さを計算してみましたが、同じことが起こる
:
CGFloat height = [[label.attributedText string]
boundingRectWithSize:CGSizeMake(label.width, CGFLOAT_MAX)
options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading)
attributes:@{NSFontAttributeName:TITLE_FONT}
context:nil].size.height;
あなたは下の3つのラベルがサイズ正しく終わるこのスクリーンショットで見ることができますしかし、トップ2はそうではありません。サブビューを説明するために着色されてしまうので、私は、iOSシミュレーターでカラーブレンドしたラベルをオン:
この2つの文字列には、ベースラインの下に描画される文字(先頭の文字列の 'p'と' y'、次の文字列の '('と ')')と、他の3人はそうしない。 – ravron
@ravronええ、私はあまりにも実際にそれに気づいていましたが、ベースライン以下の文字を変更しようとしたところ、同じ結果でした。 –
問題は標準フォントで持続しますか?私はそれらを見て明らかではない怪しい価値を持っているフォントに問題がありました。 – ravron