3

Interface BuilderのUITableViewにいくつかの異なるカスタムセルを作成しました。それぞれのセルの高さは、デフォルトの44ピクセルよりも大きいカスタムの高さです。

次に、次のようにロードします。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    static NSString *CellIdentifier;

    for (int cell = 0; cell <= [tableCellsArray count]; cell++) 
    {
        if ([indexPath row] == cell) 
        {
            CellIdentifier = [tableCellsArray objectAtIndex:cell];
        }
    }

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) 
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    // Configure the cell...

    return cell;
}

それぞれにカスタムクラスがあり、上記のコードでは、基本的に関連するセル識別子を保持する配列をループします。ただし、アプリを実行すると、すべてのセルがデフォルトの44ピクセルの高さを返します。

デリゲートメソッドを使用して自分のセルの高さを返すことなく、これを引き起こす可能性のある見逃したものはありませんか?

ありがとう。

4

3 に答える 3

6

tableView の定義ですべてのセルの高さを変更できますが、個別に設定するにはデリゲート メソッドを使用する必要があります。IB で設定できるのは紛らわしいですが、これは表示のみを目的としており、実行時には使用されません。

于 2012-04-06T15:02:32.160 に答える
5

次のセレクターを実装し、適切なロジックを適用して、カスタム セルのタイプに基づいて正しい高さが設定されるようにする必要があります。それがなければ、デフォルトの高さ 44 が使用されます

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

    return YOUR_WANTED_CELL_HEIGHT;
}

他に何かを逃したとは思わないでください。

于 2012-04-06T14:56:03.470 に答える