目前,我已经在我的桌面视图中添加了长按手势。它工作正常。现在我想要的是,如果我长按任何UITableview单元格,该单元格应该被选中,之后如果我点击下一个单元格也应该被选中。 以下是代码:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
let row = indexPath.row
cell.textLabel?.text = "Label"
return cell
}
@IBAction func longPress(_ guesture: UILongPressGestureRecognizer) {
if guesture.state == UIGestureRecognizerState.began {
print("Long Press")
}
}
答案 0 :(得分:0)
您可以在tableView
方法中设置allowsMultipleSelection
&#39} longPress
属性。由于longPress不会触发cell
的选择,您可以使用gesture
中tableView
的位置来获取初始单元格对应于longPress操作。
func longPress(sender:UILongPressGestureRecognizer) {
switch sender.state {
case .began:
tableView.allowsMultipleSelection = true
let point = sender.location(in: tableView)
selectCellFromPoint(point: point)
default:break
}
}
func selectCellFromPoint(point:CGPoint) {
if let indexPath = tableView.indexPathForRow(at: point) {
tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)
}
}