3

我有一个从笔尖加载的自定义 UITableViewCell。通过执行以下步骤,我可以使用重用标识符将其拉入我的应用程序:

1) 将 Nib 中的重用标识符设置为“CustomCellIndentifier”

2)注册笔尖:

[[self tableView] registerNib:[UINib nibWithNibName:@"CustomCell" bundle:nil] forCellReuseIdentifier:@"CustomCellIndentifier"];

3)返回tableview中的单元格:cellForRowAtIndexPath

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellIndentifier"];
     return cell;
}

我的问题是,如何返回没有重用标识符的单元格?我有一张小桌子,我不想重复使用单元格(如果我滚动它会弄乱单元格中的一些子视图)。

我尝试将上述 3 个重用标识符设置为 nil 的组合,它们都会产生错误。

我也在下面尝试过,但是如果我滚动过去单元格,单元格内容会重置,并且我收到错误消息“没有重复使用表格单元格的索引路径”:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
     if (cell == nil) {
           NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
           cell = [topLevelObjects objectAtIndex:0];
     }

     return cell;
}
4

1 回答 1

-1

我认为这不是一个好方法,但根据您的要求使用这个:

在你的类中编写init方法CustomCell

- (id)init
        NSArray *nibObjects = [[NSBundle mainBundle] loadNibNamed:@"QuestionOptionCell" owner:self options:nil];
        CustomCell *theEditView = [nibObjects objectAtIndex:0];
        self = theEditView;
        theEditView = nil;
        return self
    }


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
     CustomCell *cell = [[CustomCell alloc] init];
     if (cell == nil) {
           NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"CustomCell" owner:self options:nil];
           cell = [topLevelObjects objectAtIndex:0];
     }

     return cell;
}
于 2013-06-13T04:39:56.617 回答