sizeWithFont:constrainedToSize:lineBreakMode:が間違ったサイズを返すのはなぜですか?
-
05-07-2019 - |
質問
テーブルセルのラベルに表示する文字列の幅は2つあり、テーブルセルの高さが正しく記録されるように高さを計算する必要があります。ただし、サイズを制限するために何をしても、同じ高さが得られます。これは、私が望む場合には間違っています。私が使用しているコード:
CGFloat width = 300.0f;
NSString * value = @"LongText LongText LongText LongText LongText LongText";
CGSize contentSize = [value sizeWithFont: [UIFont systemFontOfSize: 14.0f]
constrainedToSize: CGSizeMake(width, CGFLOAT_MAX)
lineBreakMode: UILineBreakModeWordWrap];
contentSize変数を調べると、幅は252、高さは36になります。ただし、300.0fiの代わりに222.0fを幅変数に差し込むと、幅は189ですが高さは36のままで、最初の4つのLongText単語のみが2行で表示されます(3行目は計算)。なぜこれが起こっているのか知っていますか?
他のヒント
正しいサイズを返していることがわかりました。私が取り組んでいたコードは、このメソッドの幅ではなく間違った幅を使用していたため、テキストが途切れて混乱しました。
所属していません StackOverflow