我将UITableView
设置为多个部分,第一部分选择了一个选项,第二部分选择了多个选项,因此我希望确切地了解UberEats
在选择附加食品和食物类型时发生的情况
我已经完成了单元格行的扩展和关闭,我想更新自定义标题中的标签
var selectedIndexPath: IndexPath?
在cellForRowAt
if let inxPath = selectedIndexPath{
if inxPath.section == 0{
if inxPath == indexPath{
if inxPath.row == indexPath.row && inxPath.section == indexPath.section{
cell.radioButtonImageView.image = #imageLiteral(resourceName: "radioCheck")
}
}
}
if inxPath.section == 1{
if inxPath.row == indexPath.row && inxPath.section == indexPath.section{
if cell.radioButtonImageView.image == #imageLiteral(resourceName: "IconUnmarked"){
cell.radioButtonImageView.image = #imageLiteral(resourceName: "IconMarked")
}else if cell.radioButtonImageView.image == #imageLiteral(resourceName: "IconMarked"){
cell.radioButtonImageView.image = #imageLiteral(resourceName: "IconUnmarked")
}
}
}
}
在didSelectRowAt
selectedIndexPath = indexPath
tableView.reloadData()
答案 0 :(得分:1)
创建一个int以及一个int实例属性数组,以存储选定的行详细信息。
var selectedOfferIndex: Int? // section 0
var selectedItemIndices: [Int] = []//section 1
在cellForRowAt中比较选定的值并更改UI
if section == 0 {
if indexPath.row == selectedOfferIndex {
//...
} else {
//...
}
} else {//section 1
if selectedItemIndices.contains(indexPath.item) {
//...
} else {
//...
}
}
在didSelectRowAt方法中更新所选值
if section == 0 {
selectedOfferIndex = indexPath.row
} else {//section 1
if index = selectedItemIndices.firstIndex(of: indexPath.row) {
selectedItemIndices.remove(at: index)
} else {
selectedItemIndices.append(indexPath.row)
}
}
tableView.reloadData()