TableView单元未更新

时间:2019-11-19 02:54:31

标签: ios swift uitableview

我正在尝试根据结构的bool属性更新自定义单元格中的标签,但是似乎只更新一次。

在数组中创建新对象时,将其设置为false。以后将该属性设置为true时,单元格将适当更新。当我将其设置回false时,单元格不会更改。逻辑中的打印语句表明任一条件均已正确满足,因此我看不到为什么单元格不会“变回原样”。 谢谢!

struct Meal: Codable {
    var name: String
    var arrayOfDishes: [Dish]
}

struct Dish: Codable {
    var name: String
    var isActive: Bool
    var arrayOfSteps: [Step]
}

//inside cellForRowAt (I have multiple tableViews within one VC)

case mealTableView:

                    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomMealCell", for: indexPath)
                    as! MealTableViewCell

                    if meal.arrayOfDishes.isEmpty {
                        cell.mealName.text = ""
                        return cell
                    } else {
                        if meal.arrayOfDishes[indexPath.row].isActive == true {
                            cell.mealName.text = meal.arrayOfDishes[indexPath.row].name
                            return cell
                        } else if meal.arrayOfDishes[indexPath.row].isActive == false {
                            return cell
                        }
                    return cell
            }

按下按钮即可更改布尔值:(sender.tag来自另一个tableView,但工作正常)

@objc func onClickedDishBtn(sender: UIButton) {
    if meal.arrayOfDishes[sender.tag].isActive == false {
        meal.arrayOfDishes[sender.tag].isActive = true
    } else if meal.arrayOfDishes[sender.tag].isActive == true {
        meal.arrayOfDishes[sender.tag].isActive = false
    }

    mealTableView.reloadData()

0 个答案:

没有答案