swift didSelectRowAtIndexPath 可以调用多次
swift didSelectRowAtIndexPath can be called several times
我的 tableview 有问题,我可以很好地点击我的单元格。但是如果我快速点击同一个单元格两次。它运行 "didSelectRowAtIndexPath" 两次。将 2 个相同的视图添加到我的导航控制器堆栈
函数如下:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var VC = detaiLSuggestion_VC()
self.navigationController?.pushViewController(VC, animated: true)
var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
if selectedCell.backgroundColor == UIColor.formulaFormColor() {
println("Buy Action")
selectedCell.backgroundColor = UIColor.formulaMediumBlue()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaFormColor()
})
} else {
println("Sell Action")
selectedCell.backgroundColor = UIColor.formulaGreenColor()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaLightGreenColor()
})
}
为什么我可以 select 同一个单元格两次?我将如何解决这个问题?
为什么我可以select同一个单元格两次?
因为单元格仍在屏幕上以供点击。你可能想做一些除了使用单元格点击导航之外的事情,然后你不想阻止未来的点击。如果不是这种情况,multiselect 也会复杂得多。
我该如何解决?
一个简单的布尔标志来指示某些东西已被点击会起作用,否则您可能希望在呈现另一个视图控制器时将 CollectionView 的 allowsSelection 属性 设置为 NO
我的 tableview 有问题,我可以很好地点击我的单元格。但是如果我快速点击同一个单元格两次。它运行 "didSelectRowAtIndexPath" 两次。将 2 个相同的视图添加到我的导航控制器堆栈
函数如下:
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
var VC = detaiLSuggestion_VC()
self.navigationController?.pushViewController(VC, animated: true)
var selectedCell:UITableViewCell = tableView.cellForRowAtIndexPath(indexPath)!
if selectedCell.backgroundColor == UIColor.formulaFormColor() {
println("Buy Action")
selectedCell.backgroundColor = UIColor.formulaMediumBlue()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaFormColor()
})
} else {
println("Sell Action")
selectedCell.backgroundColor = UIColor.formulaGreenColor()
UIView.animateWithDuration(0.5, animations: {
selectedCell.backgroundColor = UIColor.formulaLightGreenColor()
})
}
为什么我可以 select 同一个单元格两次?我将如何解决这个问题?
为什么我可以select同一个单元格两次?
因为单元格仍在屏幕上以供点击。你可能想做一些除了使用单元格点击导航之外的事情,然后你不想阻止未来的点击。如果不是这种情况,multiselect 也会复杂得多。
我该如何解决?
一个简单的布尔标志来指示某些东西已被点击会起作用,否则您可能希望在呈现另一个视图控制器时将 CollectionView 的 allowsSelection 属性 设置为 NO