我正在做一个项目,它有一个静态 TableView 。此 TableView 包含三个部分,每个部分都有不同的行数。我正在使用一个代码,它允许同时选择不同部分的不同行,但不能从同一部分选择两个不同的行。这是代码:
switch indexPath.section {
case 0:
switch indexPath.row {
case 0:
oneDollarRestaurantCell.accessoryType = .checkmark
oneDollarRestaurantCell.isSelected = true
twoDollarRestaurantCell.accessoryType = .none
twoDollarRestaurantCell.isSelected = false
threeDollarRestaurantCell.accessoryType = .none
threeDollarRestaurantCell.isSelected = false
fourDollarRestaurantCell.accessoryType = .none
fourDollarRestaurantCell.isSelected = false
case 1:
twoDollarRestaurantCell.accessoryType = .checkmark
twoDollarRestaurantCell.isSelected = true
oneDollarRestaurantCell.accessoryType = .none
oneDollarRestaurantCell.isSelected = false
threeDollarRestaurantCell.accessoryType = .none
threeDollarRestaurantCell.isSelected = false
fourDollarRestaurantCell.accessoryType = .none
fourDollarRestaurantCell.isSelected = false
case 2:
threeDollarRestaurantCell.accessoryType = .checkmark
threeDollarRestaurantCell.isSelected = true
twoDollarRestaurantCell.accessoryType = .none
twoDollarRestaurantCell.isSelected = false
oneDollarRestaurantCell.accessoryType = .none
oneDollarRestaurantCell.isSelected = false
fourDollarRestaurantCell.accessoryType = .none
fourDollarRestaurantCell.isSelected = false
case 3:
fourDollarRestaurantCell.accessoryType = .checkmark
fourDollarRestaurantCell.isSelected = true
twoDollarRestaurantCell.accessoryType = .none
twoDollarRestaurantCell.isSelected = false
threeDollarRestaurantCell.accessoryType = .none
threeDollarRestaurantCell.isSelected = false
oneDollarRestaurantCell.accessoryType = .none
oneDollarRestaurantCell.isSelected = false
default:
break
}
case 1:
switch indexPath.row {
case 0:
within500MetersCell.accessoryType = .checkmark
within500MetersCell.isSelected = true
within1000MetersCell.accessoryType = .none
within1000MetersCell.isSelected = false
case 1:
within1000MetersCell.accessoryType = .checkmark
within1000MetersCell.isSelected = true
within500MetersCell.accessoryType = .none
within500MetersCell.isSelected = false
default:
break
}
case 2:
switch indexPath.row {
case 0:
sortByFromAtoZCell.accessoryType = .checkmark
sortByFromAtoZCell.isSelected = true
sortByFromZtoACell.accessoryType = .none
sortByFromZtoACell.isSelected = false
sortByDistanceCell.accessoryType = .none
sortByDistanceCell.isSelected = false
sortByPriceCell.accessoryType = .none
sortByPriceCell.isSelected = false
case 1:
sortByFromZtoACell.accessoryType = .checkmark
sortByFromZtoACell.isSelected = true
sortByFromAtoZCell.accessoryType = .none
sortByFromAtoZCell.isSelected = false
sortByDistanceCell.accessoryType = .none
sortByDistanceCell.isSelected = false
sortByPriceCell.accessoryType = .none
sortByPriceCell.isSelected = false
case 2:
sortByDistanceCell.accessoryType = .checkmark
sortByDistanceCell.isSelected = true
sortByFromZtoACell.accessoryType = .none
sortByFromZtoACell.isSelected = false
sortByFromAtoZCell.accessoryType = .none
sortByFromAtoZCell.isSelected = false
sortByPriceCell.accessoryType = .none
sortByPriceCell.isSelected = false
case 3:
sortByPriceCell.accessoryType = .checkmark
sortByPriceCell.isSelected = true
sortByFromZtoACell.accessoryType = .none
sortByFromZtoACell.isSelected = false
sortByDistanceCell.accessoryType = .none
sortByDistanceCell.isSelected = false
sortByFromAtoZCell.accessoryType = .none
sortByFromAtoZCell.isSelected = false
default:
break
}
default:
break
}
}
我在这里检查部分,并在其中检查每一行。这工作正常,但突然停止了。
已编辑
预期结果如下:
实际结果如下:
我没有更改该类中的任何内容。相同的代码在另一个项目中仍然有效,所以我很绝望,因为我不明白是什么导致了这个问题。我已经尝试了一切,甚至将文件从工作项目复制到这个项目(文件结构完全相同)。你有什么建议吗?
最佳答案
据我所知,您提供的示例之间的主要区别在于多项选择。要为 UITableView
启用此功能,您可以在属性检查器中将 selection
属性的值设置为 multiple selection
。
您还可以通过将 allowsMultipleSelection
属性设置为 true
来覆盖此参数。我不完全确定,但我怀疑在您的第一个项目中,此属性是在代码中设置的。
关于ios - 相同的代码在一个项目中有效,在另一个项目中无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47188257/