1

3つのグループでグループ化されたテーブルビューを作成しようとしていますが、各グループには異なる高さのセルがあります。ストーリーボードに適切な高さで3つのプロトタイプセルを設定し、各行に適切な高さを返すようにUITableViewControllerを設定しました。ただし、何らかの理由で、画面に表示されたときのセルの高さは1ピクセルしかありません。

コードをステップ実行すると、行ごとに正しい高さとセルが返されます。また、返される前に、各セルのフレームが正しいことを確認しました。ただし、呼び出すと、各行の高さが1ピクセルしかないrectForRowAtIndexPathことがわかります。rect

一定のセルの高さを使用すると、この問題は完全に解消されます。そのような状況では、セルは完全に表示されます。高さが可変である必要があるため、セルの一部は短すぎる/高すぎる場合があります。

ここで何が起こっているのかアイデアはありますか?を使用すると、各行のrectがどのように決定されるかを理解したいと思いheightForRowAtIndexPathます。

heightForRowAtIndexPathのコード:

- (NSInteger)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    switch (indexPath.section) {
        case 0:
            return 80.0;
            break;

        case 1:
            return 260.0;
            break;

        case 2:
            return 110.0;
            break;

        case 3:
            return 114.0;
           break;

        default:
            break;
    }
    return 0;
}
4

2 に答える 2

2

あなたはtableView:heightForRowAtIndexPath:を返すと宣言しましたNSInteger

それはする必要がありますCGFloat

于 2012-08-10T21:04:07.043 に答える
1

単に行の高さを増やすだけです.単にインデックスパスに行の高さのメソッドを書くだけです.

if (indexpath.section== 0)

  return 50;
于 2012-08-10T18:37:26.857 に答える