我从here了解到如何启用表格视图多重选择。但是我该如何定制呢?如何用我自己的视图替换这些默认视图,如下图所示?
答案 0 :(得分:1)
UItableViewCell
是UIView
的子类,因此您可以在每个单元格上调用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
中做一些逻辑来管理选择。