UITableView中的问题没有单元重用

时间:2014-02-15 12:47:13

标签: ios iphone uitableview ios7

我正在尝试创建一个不重复使用单元格的tableview。

- (UITableViewCell *)tableView:(UITableView *)tableView
         cellForRowAtIndexPath:(NSIndexPath *)indexPath  {

static NSString *CellIdentifier = @"Cell";
cell = [[SignUpUserCell alloc] initWithStyle:UITableViewCellStyleDefault
                                     reuseIdentifier:CellIdentifier];
cell.delegate = self;
return cell;

}

但是这不会加载我的自定义单元格。但是当我添加dequeReusableCellWithIdentifier时:它完美无缺。但是我不想再使用细胞了。

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

    SignUpUserCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    if (!cell) {
        cell = [[SignUpUserCell alloc] initWithStyle:UITableViewCellStyleDefault
                                     reuseIdentifier:CellIdentifier];
    }
    cell.keyLabel.text = [parameterDictionary objectForKey:@"secondLabel"];
    cell.textField.text = [parameterDictionary objectForKey:@"secondField"];

    // and some more elements

    cell.delegate = self;
    return cell;
}

如何使用不可重用的tablecells正确创建tableview。我在这做错了什么?

2 个答案:

答案 0 :(得分:1)

您确定这是您实际使用的代码吗?

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath  {

static NSString *CellIdentifier = @"Cell";
cell = [[SignUpUserCell alloc] initWithStyle:UITableViewCellStyleDefault
                                 reuseIdentifier:CellIdentifier];
cell.delegate = self;
return cell;

   }

我问的原因是你没有定义cell是什么,代码应该是这个......

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath  {

static NSString *CellIdentifier = @"Cell";
SignUpUserCell * cell = [[SignUpUserCell alloc] initWithStyle:UITableViewCellStyleDefault
                                 reuseIdentifier:CellIdentifier];
cell.delegate = self;
return cell;

   }

答案 1 :(得分:0)

需要:

return cell;

不是

return self;