我希望进度条读取数组中的completed是否有completed值,如果完成时有删除线,进度条也将更改
抱歉,我可能不太清楚,但我想如下
ios - 如何使用进度条快速显示数组计数-LMLPHP
这是我的密码

   class ListTableViewController: UITableViewController {

   @IBOutlet weak var progressView: UIProgressView!

   var progress: Float {
       if item.lists.count > 0 {
           return Float(item.lists.filter({$0.completed}).count) / Float(item.lists.count)
       } else {
           return 0
       }
   }

   var item: ItemCard! {
       didSet {
           if let progressView = progressView {
           // it's not work
           progressView.setProgress(progress, animated: true)
           }
       }
}

这是我的数据。ItemCard中有lists=列表。我想在列表中完成作为进度条的显示。
class ItemCard: NSObject, Codable {

  var title: String
  var isFinish: Bool
  var lists = [List]()


  init(title: String, isFinish: Bool) {
      self.title = title
      self.isFinish = false
      super.init()
  }
  }

class List: NSObject, Codable {

  var name: String
  var completed:Bool

  init(name:String, completed:Bool) {
      self.name = name
      self.completed = completed
  }
 }

我对项变量使用了didSet,但它无效

最佳答案

每次你有一个新的ItemCard,计算完成列表的数量,除以列表的数量并更新进度。
应该看起来像这样。

var item: ItemCard! {
    didSet {
        let completedListsCount = self.item.lists.map { $0.completed }
                                                 .filter { $0 }
                                                 .count
        let progress = Double(completedLists.count / self.item.lists.count)
        progressView.setProgress(progress, animated: true)
    }
}

10-05 20:23
查看更多