我正在以编辑模式使用tableview。我正在使用复选标记多选方法,正如您在内置邮件编辑模式的iOS中看到的那样-也链接了here。
我的问题是,当选择一个单元格时,背景会更改为默认的tintColor。
我的预期结果是tableViewCell onSelect填充了选中标记,但不更改背景颜色。
我尝试将selectionStyle更改为.none,这使它无法在编辑模式下完全选择单元格。我还尝试过更改选定的背景视图,但没有成功。
open override func viewWillLoad(withData data: Any!) {
self.view.backgroundColor = .gray
self.tableView = UITableView()
self.tableView.setEditing(true, animated: true)
self.tableView.delegate = self
self.tableView.dataSource = self
self.tableView.allowsMultipleSelection = true
self.tableView.allowsSelectionDuringEditing = true
self.view.addSubview(tableView)
}
public func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle {
return UITableViewCellEditingStyle.init(rawValue: 3)!
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
// dequeueing my cell here
cell.textLabel?.text = data[indexPath.row]
// cell.selectionStyle = ????
return cell
}
除了创建自定义按钮之外,还有其他方法可以实现吗?
答案 0 :(得分:0)
尝试一下:
func tableView(_ tableView: UITableView,
shouldHighlightRowAt indexPath: IndexPath) -> Bool {
return !tableView.isEditing
}
答案 1 :(得分:0)
答案 2 :(得分:0)
事实证明,使用多重选择的tableViews具有特定的背景!
我的解决方案是在单元格上使用以下代码:
let selectedView = UIView()
selectedView.backgroundColor = cellBackgroundColor
self.multipleSelectionBackgroundView = selectedView
self.selectionStyle = .default
如果仅使用单个选择,则可以使用以下内容:
let selectedView = UIView()
selectedView.backgroundColor = cellBackgroundColor
self.selectedBackgroundView = selectedView
self.selectionStyle = .default