我有一个从笔尖加载的自定义UITableViewCell。我可以通过执行以下步骤将其用于使用reuseIdentifier进入我的应用程序:
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;
}
答案 0 :(得分:-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;
}