iphone - 单击单元格时的 UITableViewCellAccessoryCheckmark

标签 iphone ios uitableview

我有一个 UITableView,每个单元格都有一个 UITableViewCellAccessoryCheckmark。用户可以根据自己的喜好选中和取消选中单元格。用户可以在表格 View 中检查/选择多个单元格。可以根据用户偏好取消选中/选中的单元格并再次选中。这是我试过的。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if([[NSIndexPath indexPathWithIndex:indexPath.row] isEqual:self.selectedIndex]){
                    if(cell.accessoryType == UITableViewCellAccessoryCheckmark)
                        cell.accessoryType = UITableViewCellAccessoryNone;
                    else
                        cell.accessoryType = UITableViewCellAccessoryCheckmark;
                }
                else{
                    if(cell.accessoryType == UITableViewCellAccessoryCheckmark){

                    }
                    else{
                        cell.accessoryType = UITableViewCellAccessoryNone;}
                }
}

在这种情况下,我的逻辑不正确。上面是我最接近的,但同样,第一次加载 tableview 时检查每个单元格。但其余功能都还可以。

所以我想要的是,最初在加载 View 时,我必须取消选中 UITableView 中的所有单元格。然后根据单元格的选择,必须在每个单元格中更新复选标记。属性 selectedIndex 的类型为 NSIndexPath 并且每次都在 didSelectRowAtIndexpath 中更新。

最佳答案

永远不要根据来自单元格的任何数据检查您选择的状态,始终使用您自己的数据模型或数组来维护所选状态。

呃,为什么? O_o

通常 UITableViewCell 会被重复使用,出现在索引 1 处的单元格可能会以相同状态再次出现在索引 8、7 或 9 或任何索引处(我们不需要 了解通常)当你使用dequeueReusableCell:

如果您想要CheckBox 样式(多选),您需要有一个数组来映射选定的索引。

如果您想要RadioButton 样式(一次单选),您需要有一个引用所选索引的变量。

在您的代码中的特定情况下..这可以这样解决:

if([[NSIndexPath indexPathWithIndex:indexPath.row] isEqual:self.selectedIndex]){
      cell.accessoryType = UITableViewCellAccessoryCheckmark;
else{
      cell.accessoryType = UITableViewCellAccessoryNone;}
}

关于iphone - 单击单元格时的 UITableViewCellAccessoryCheckmark,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15863789/

相关文章:

iphone - 可达性最佳实践

android - 如何为某个小部件 Flutter 指定拖动目标(单个 Draggable 被放入 3 个拖动目标而不是 1 个)

ios - 使用 AVMutableComposition 合并视频导致没有音频

ios - 下载单元格图像后 UITableView 滚动缓慢

ios - 在 iOS 中忽略 TableView 标题内的按钮单击

iphone - 如何在ViewController中初始化实例变量和属性

iphone - 设置需求显示 : Too long between redraw cycles

iphone - _NSZombie_GraphicPath 类在两者中都实现了 ??和 ??。将使用两者之一。哪个是未定义的

ios - Sprite-kit:如何将 Sprite 定位在圆形路径上

ios - 滚动列表时应用程序崩溃