如何显示在同一个nib文件中定义的自定义UITableViewCell

时间:2012-08-13 15:35:00

标签: ios uitableview

我在与UITableView相同的nib文件中设计了一个自定义UITableViewCell。然后我使用以下代码显示它:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"SearchViewCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

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

    // Configure the cell...
    NSInteger section = [indexPath section];

    switch (section) {
        case 0: // First cell in section 1
            return self.priceRangeCell;
            break;
        default:
            // Do something else here if a cell other than 1,2,3 or 4 is requested

            return cell;
            break;
    }

我的问题是我对整个dequeueReusableCellWithIdentifier业务感到困惑。我甚至需要以下部分吗?:

 static NSString *CellIdentifier = @"SearchViewCell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

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

你能看到我的代码有任何其他问题吗?

由于

1 个答案:

答案 0 :(得分:0)

你并不一定要使用你提到的代码,但不是这样的代码。如果你不使用那个if子句,那么每次滚动表时都会创建新的单元格,而不是重用旧表格 - 这对内存使用不利。

其次,您的代码中缺少某些内容 - 您不会使用任何内容填充您的单元格。您返回一个单元格,但尚未向其中添加任何内容。