如何在长按上显示用户选择的表格视图单元格
how show user selected cell of tableview on longpress
你好,我正在我的表格视图中添加 UILongPressGesture
,我已经成功添加,但问题是如何显示该单元格是 selected 我的意思是我想改变 select 的颜色ed 单元格,当我再次长按 selected 单元格时,我想删除 select 单元格
我已经尝试使用代码在我的表格视图中添加长按并在 LongPress 上分配代表这是我的代码
@objc func longPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
if longPressGestureRecognizer.state == UIGestureRecognizer.State.began {
let touchPoint = longPressGestureRecognizer.location(in: self.tblList)
if let indexPath = tblList.indexPathForRow(at: touchPoint) {
}
}
}
并且在 viewDidload()
我正在编写这段代码
let longPressGesture:UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(SMSChatViewController.longPress(_:)))
longPressGesture.minimumPressDuration = 1.0 // 1 second press
longPressGesture.delegate = self
self.tblList.addGestureRecognizer(longPressGesture)
所以从这段代码我可以 select 单元格但是如何向用户显示单元格是 selected 我不知道该怎么做
所以我只想这样当用户长按而不是单元格颜色更改并设置为 selected 然后再次长按而不是 deselect 单元格的原始颜色
当 longPressGesture 被识别时,您只更改单元格的背景颜色怎么样?像这样:
@objc func longPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
if longPressGestureRecognizer.state == UIGestureRecognizer.State.began {
let touchPoint = longPressGestureRecognizer.location(in: self.tblList)
if let indexPath = tblList.indexPathForRow(at: touchPoint) {
let cell = tblList.cellForRow(at: indexPath)
if (cell.isSelected) {
cell.backgroundColor = UIColor.clear // or whatever color you need as default
cell.setSelected(false, animated: true)
} else {
cell.backgroundColor = UIColor.orange
cell.setSelected(true, animated: true)
}
}
}
}
如果您需要澄清或我误解了什么,请告诉我,我会编辑我的答案。
你好,我正在我的表格视图中添加 UILongPressGesture
,我已经成功添加,但问题是如何显示该单元格是 selected 我的意思是我想改变 select 的颜色ed 单元格,当我再次长按 selected 单元格时,我想删除 select 单元格
我已经尝试使用代码在我的表格视图中添加长按并在 LongPress 上分配代表这是我的代码
@objc func longPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
if longPressGestureRecognizer.state == UIGestureRecognizer.State.began {
let touchPoint = longPressGestureRecognizer.location(in: self.tblList)
if let indexPath = tblList.indexPathForRow(at: touchPoint) {
}
}
}
并且在 viewDidload()
我正在编写这段代码
let longPressGesture:UILongPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(SMSChatViewController.longPress(_:)))
longPressGesture.minimumPressDuration = 1.0 // 1 second press
longPressGesture.delegate = self
self.tblList.addGestureRecognizer(longPressGesture)
所以从这段代码我可以 select 单元格但是如何向用户显示单元格是 selected 我不知道该怎么做
所以我只想这样当用户长按而不是单元格颜色更改并设置为 selected 然后再次长按而不是 deselect 单元格的原始颜色
当 longPressGesture 被识别时,您只更改单元格的背景颜色怎么样?像这样:
@objc func longPress(_ longPressGestureRecognizer: UILongPressGestureRecognizer) {
if longPressGestureRecognizer.state == UIGestureRecognizer.State.began {
let touchPoint = longPressGestureRecognizer.location(in: self.tblList)
if let indexPath = tblList.indexPathForRow(at: touchPoint) {
let cell = tblList.cellForRow(at: indexPath)
if (cell.isSelected) {
cell.backgroundColor = UIColor.clear // or whatever color you need as default
cell.setSelected(false, animated: true)
} else {
cell.backgroundColor = UIColor.orange
cell.setSelected(true, animated: true)
}
}
}
}
如果您需要澄清或我误解了什么,请告诉我,我会编辑我的答案。