图像单元崩溃时如何更改?

时间:2019-11-26 16:56:20

标签: ios swift xcode uitableview

当我推单元格并将其折叠时,我希望单元格中的图标更改其位置

这是表格视图的代码:

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell

            cell.serviciosLabel.text! = nameArr[indexPath.row]
            cell.serviciosImageView.image = UIImage(named: "\(imageArr[indexPath.row])")



        /* if (indexPath.row == 2){
         cell.serviciosExpandableView.image = UIImage(named: "\(imgcoll)")

         }

         */


        return cell
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)
        if indexPath.row == 0 {
            pushVentasTab() // pushVentaArticulos()
        } else if indexPath.row == 1 {
            pushReporteDDia()
        } else if indexPath.row == 2 {
            if SelectedIndex == indexPath.row
            {

                if self.isCollapce == false
                {
                    self.isCollapce = true

                }else
                {
                    self.isCollapce = false
                }
            }else{
                self.isCollapce = true
            }
        }
        self.SelectedIndex = indexPath.row
        tableView.reloadRows(at: [indexPath], with: .automatic)
    }
}

我不知道如何更改它,请看看并帮助我

1 个答案:

答案 0 :(得分:1)

这就是您要做的。 为TableViewCell创建一个快速文件,并使用IB将按钮和标签连接到代码。

在tableCell swift文件中,声明一个变量iconExpanded

var iconExpanded: Bool = false {
  didSet {
     setupCell()
   }
}

setupCell()中的逻辑可更改按钮的图像

func setupCell(){
     if (iconExpanded) {
        // set the image to expanded
     } else {
       // set the image to closed
     }
}

只要您的表格视图发生变化,请为特定的单元格设置折叠或展开的值,然后重新加载特定的部分。

let sections = IndexSet.init(integer: 0)
tableView.reloadSections(sections, with: .automatic)

最后将按钮状态的更改发送到单元格。

   func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "cell") as! TableViewCell

            cell.serviciosLabel.text! = nameArr[indexPath.row]
            cell.serviciosImageView.image = UIImage(named: "\(imageArr[indexPath.row])")
            cell.iconExpanded = <true for expand // false for collapse>  
        return cell
    }

nameArr是一个数组,创建一个结构以存储每个单元格的名称和扩展状态。