是否可以为UITableViewCell更改多行选择的编辑控制图像。如果可以通过UITableViewCell的任何默认功能,或者我们必须自己定制它,如果是这样,任何人都可以给我任何参考来做它。
提前致谢。
答案 0 :(得分:4)
OP实际上想要更改编辑控件。当您将其更改为编辑模式时,这是单元格左侧显示的加号或减号。您实际上无法更改图像,但您可以做的是假更改图像,以下是步骤:
现在,当表格进入编辑模式并且单元格将内容向右移动时,您将看到添加到背景视图中的图像。这样做的副作用是,当您触摸新图像时,它不会接收到触摸。对于我的情况,我将tableView.allowSelectionDuringEditing设置为YES并处理tableView中的选择:didSelectRowAtIndexPath:在我的表视图控制器中。
答案 1 :(得分:0)
UITableViewCell的accessoryType属性具有UITableViewCellAccessoryCheckmark的可能值,该值将在单元格的右侧显示一个复选标记,用于记录选定/取消选择的状态。
其他选项是UITableViewCellAccessoryDisclosureIndicator,它是一个指向右边的雪佛龙,以及UITableViewCellAccessoryDetailDisclosureButton,它在电话应用程序的最近通话记录中创建了一个小蓝色按钮。
所以在设置好你的手机后,
cell.textLabel.text = @"Selected";
cell.accessoryType = UITableViewCellAccessoryCheckmark;
return cell;
答案 2 :(得分:0)
覆盖自定义单元格setEditing应该可以工作。为我工作。但是,我仍然无法弄清楚为什么在重新排序时它会恢复为默认图像。
任何建议都将受到欢迎:)
private var myEditImage = UIImage(named: "some-image")
override func setEditing(_ editing: Bool, animated: Bool) {
super.setEditing(editing, animated: animated)
for subViewA in self.subviews {
if subViewA.classForCoder.description() == "UITableViewCellEditControl" {
if let subViewB = subViewA.subviews.last {
if subViewB.isKind(of: UIImageView.classForCoder()) {
let imageView = subViewB as! UIImageView;
imageView.contentMode = .scaleAspectFit
imageView.image = self.myEditImage;
}
}
}
}
}