2012-05-09 6 views
0

私はちょうど奇妙な問題に遭遇しました、私は動的な高さでカスタムテーブルビューのセルを持っています。 これをすべてテストしてもうまくいくように見えましたが、実際のコンテンツを読み込んでいるうちにいくつかの問題があるようです。sizeToFitは長い単語で新しい行をトリガーしません

いくつかのテキストが正しいUILabel

に新しい行を誘発しないことが表示されます:http://dl.dropbox.com/u/274185/Screen%20Shot%202012-05-09%20at%201.15.21%20PM.png 間違っ:あなたは間違った例で見ることができるようにhttp://dl.dropbox.com/u/274185/Screen%20Shot%202012-05-09%20at%201.15.30%20PM.png

、テキストは第二にプッシュされますラベルの高さは1行しかカウントしません。

item.project = @ "長いタイトルの別のテストプロジェクト(管理/プロジェクト管理)";

item.project = @ "テストプロジェクト(管理/プロジェクト管理)";

私は高さを計算方法は、このようなものです:

// when creating the cell 
cell.projectLabel.lineBreakMode = UILineBreakModeWordWrap; 
cell.projectLabel.numberOfLines = 0; 
[cell.projectLabel sizeToFit]; 

// in heightForRowAtIndexPath() 
CGSize projectHeight = [item.project sizeWithFont:[UIFont boldSystemFontOfSize:13.0f] constrainedToSize:CGSizeMake(320.0f, CGFLOAT_MAX) lineBreakMode: UILineBreakModeWordWrap]; 

私はlineBreakModeを変更しようとしたが、これは非常に

EDITを助けていないようです: あるように見えました問題は、テキストの高さを計算するとき、私は正確に計算された実際の幅を使用した後、正しくない固定320ポイントを使用しました。

CGSize projectHeight = [item.project sizeWithFont:[UIFont boldSystemFontOfSize:13.0f] constrainedToSize:CGSizeMake(cell.projectLabel.bounds.size.width, CGFLOAT_MAX) lineBreakMode: UILineBreakModeWordWrap]; 

答えて

1

私はダウンビューのサイズsizeToFitを信じ。 ラベルのフレームを2行分だけ高く設定し、sizeToFitを呼び出す必要があります。テキストが1行だけの場合はラベルが縮小されますが、テキストが2行の場合は高さが維持されます。

+0

Interface Builderでは、私のラベルのフレームは複数の行に収まるほどの高さです。しかし、あなたがスクリーンショットから見ることができるように、いくつかのケースでしか起こらないので、lineBreakModeと何か関係があると思います。 –

+0

それが真であるかどうかを調べるために 'UILineBreakModeCharacterWrap'を試してください。 –

+0

同じ問題があります。最初のものともう1つは16pxしか与​​えません。奇妙な... –

関連する問題