我在使用iOS 5新功能在编辑模式下选择多个单元格时遇到问题。应用结构如下:
-> UIViewController
---> UITableView
----> CustomUITableViewCell
UIViewController
委托和数据源都在哪里UITableView
(出于需求原因,我使用的是 anUIViewController
而不是,UITableViewController
我无法更改它)。单元格被加载到UITableView
类似下面的代码中。
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
CustomTableViewCell *cell = (CustomTableViewCell*)[tv dequeueReusableCellWithIdentifier:kCellTableIdentifier];
if (cell == nil)
{
[[NSBundle mainBundle] loadNibNamed:@"CustomTableViewCellXib" owner:self options:nil];
cell = self.customTableViewCellOutlet;
cell.selectionStyle = UITableViewCellSelectionStyleNone;
}
// configure the cell with data
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
单元界面是从 xib 文件创建的。特别是,我创建了一个新的 xib 文件,其中超级视图由一个UITableViewCell
元素组成。为了提供自定义,我将该元素的类型设置为CustomUITableViewCell
, 其中CustomUITableViewCell
extends UITableViewCell
。
@interface CustomTableViewCell : UITableViewCell
// do stuff here
@end
代码运行良好。在表格中显示自定义单元格。现在,在应用程序执行期间,我设置allowsMultipleSelectionDuringEditing
为YES
并进入UITableView
. 它似乎工作。事实上,每个单元格旁边都会出现一个空圆圈。问题是当我选择一行时,空圆圈不会改变它的状态。理论上,圆圈必须从空变为红色复选标记,反之亦然。似乎圆圈仍然contentView
在单元格的上方。
我做了很多实验。我还检查了以下方法。
- (NSArray *)indexPathsForSelectedRows
并在编辑模式下选择期间更新。它显示正确的选定单元格。
我不太清楚的是,当我尝试在没有自定义单元格的情况下工作时,只有使用UITableViewCell
,圆圈会正确更新其状态。
你有什么建议吗?先感谢您。