自定义表格视图多个选择复选标记

时间:2014-12-04 14:07:49

标签: ios tableview

我从here了解到如何启用表格视图多重选择。但是我该如何定制呢?如何用我自己的视图替换这些默认视图,如下图所示?

enter image description here

2 个答案:

答案 0 :(得分:1)

UItableViewCellUIView的子类,因此您可以在每个单元格上调用addSubview添加UIImage视图,也可以创建自己的UITableViewCell类!

希望这有帮助!

答案 1 :(得分:1)

我找到了自己的解决方案:更改auto layout constraints

我的表格视图单元格是一个自定义单元格,其中我需要将所有视图向右移动以显示选择指示符,所以最初我在自定义视图后面放置了一个自定义指标,然后我在自定义中设置了2个方法cell子类更新我的视图的约束,以显示下面的指示符。

他们看起来像这样:

// in the cell subclass

- (void)showSelectionIndicator {
  self.imageViewLeadingConstraint.constant = 50.f;
}

- (void)hideSelectionIndicator {
  self.imageViewLeadingConstraint.constant = 15.f;
}

imageViewLeadingConstraint只是一个主要约束,它决定了我在单元格中所有视图的位置。

然后,在视图控制器中,我自己管理选择状态和所选的indexPaths。在cellForRowAtIndexPath方法中,我还会像这样设置单元格:

// ... normal cell set up
if (self.isSelectingDownloads) {
  [cell showSelectionIndicator];
} else {
  [cell hideSelectionIndicator];
}
// return cell

我还有一种切换选择状态的方法:

- (void)toggleDownloading {
  self.isSelectingDownloads = !self.isSelectingDownloads;

  [self.tableView reloadData];
}

这使一切顺利。通过调用toggleDownloading,单元格中的视图按预期向右移动。当然,我还需要在didSelectRowAtIndexPath中做一些逻辑来管理选择。