私はちょうど奇妙な問題に遭遇しました、私は動的な高さでカスタムテーブルビューのセルを持っています。 これをすべてテストしてもうまくいくように見えましたが、実際のコンテンツを読み込んでいるうちにいくつかの問題があるようです。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];
Interface Builderでは、私のラベルのフレームは複数の行に収まるほどの高さです。しかし、あなたがスクリーンショットから見ることができるように、いくつかのケースでしか起こらないので、lineBreakModeと何か関係があると思います。 –
それが真であるかどうかを調べるために 'UILineBreakModeCharacterWrap'を試してください。 –
同じ問題があります。最初のものともう1つは16pxしか与えません。奇妙な... –