Swift:UICollectionView 中的单选按钮



我正在使用UICollectionView创建应用程序设置。我知道UITableView更适合这样的静态事物,但我需要集合视图的可定制性。

我有 2 个部分,每个部分都有 2 个按钮。作为按钮,我使用我的自定义 XIB,对于选择/未选择,我使用它的功能。我已经用这段代码实现了它,但我觉得这不是好代码 - 如果你明白我的意思。

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if indexPath.section == 0 {
let cell00 = collectionView.cellForItem(at: [0,0]) as! RadioButtonCell
let cell01 = collectionView.cellForItem(at: [0,1]) as! RadioButtonCell
if indexPath.row == 0 {
cell00.selectCell()
cell01.unselectCell()
} else {
cell00.unselectCell()
cell01.selectCell()
}
} else {
let cell10 = collectionView.cellForItem(at: [1,0]) as! RadioButtonCell
let cell11 = collectionView.cellForItem(at: [1,1]) as! RadioButtonCell
if indexPath.row == 0 {
cell10.selectCell()
cell11.unselectCell()
} else {
cell10.unselectCell()
cell11.selectCell()
}
}
}

能做得更好吗?谢谢

override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
for i in 0..<collectionView.numberOfItems(inSection: indexPath.section) {
let cell = collectionView.cellForItem(at: [indexPath.section, i]) as! RadioButtonCell
i == indexPath.row ? cell.selectCell() : cell.unselectCell()
}
}

最新更新