目前,我已经在我的表格视图中添加了一个长按手势。它工作得很好。现在我想要的是,如果我长按任何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")
}
}发布于 2017-05-25 10:48:19
您可以在longPress方法中设置tableView的allowsMultipleSelection属性,因为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)
}
}https://stackoverflow.com/questions/44166600
复制相似问题