UITableView - 在编辑模式下重用单元格
Posted
技术标签:
【中文标题】UITableView - 在编辑模式下重用单元格【英文标题】:UITableView - reusing cells while in editing mode 【发布时间】:2013-06-19 20:19:42 【问题描述】:我发现如果您将表格视图设置为编辑模式,则在删除一行后滚动表格时,单元格编辑控件(左侧的红色减号)处于随机状态(变为垂直或水平)滚动表格时在其余单元格上。大概是因为我正在重用这样的单元格:
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
如何强制编辑控件处于每个单元格的正确状态?除非我点击它删除一个单元格,否则它应该始终处于默认水平状态。
编辑:这是单元格代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *cellIdentifier = @"WhateverIdentifier";
MyCell *cell = nil;
//This IF statement fixes the problem, but then I'm not reusing the cells
if (!tableView.isEditing)
cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (!cell)
cell = [[[NSBundle mainBundle] loadNibNamed:@"MyCell" owner:self options:nil] objectAtIndex:0];
//customize cell
return cell;
【问题讨论】:
你能发布更多关于你的代码的细节吗? 发布了问题的更新。 MyCell* 类有自定义的东西吗? 一张图片和一个文字标签。 有什么解决办法吗?我在两个不同的项目中看到了同样的事情 【参考方案1】:您是否在自定义单元格的方法prepareForReuse
中调用[super prepareForReuse]
?
这解决了我的问题。
【讨论】:
AGGGGHHHHHHHHHH 我花了两个星期看这个!!!!!!感谢您的快速解决方案。 谢谢,完美的解决方案;)【参考方案2】:我刚刚签入了一个方便的 UITableView,但我没有看到这个问题。我正在使用 dequeueReusableCellWithIdentifier: 就像你一样(当然没有 if 语句)。您是否正在通过滑动或删除多行或其他方式做一些特别的事情?
(我会对此发表评论,但目前还不能。一旦你解决了你的问题,我会删除它。)
【讨论】:
以上是关于UITableView - 在编辑模式下重用单元格的主要内容,如果未能解决你的问题,请参考以下文章
如何在编辑模式下在 UITableView 中添加额外的单元格?