【问题标题】:When Scroll in table view timer reset to original value in tableview cell当在表格视图中滚动时计时器重置为表格视图单元格中的原始值
【发布时间】:2020-08-26 13:48:24
【问题描述】:

我有工作列表(表格视图),当我点击任何工作时,这意味着我申请了工作,然后计时器开始(倒计时 30 秒)在此我可以撤消可能申请的工作。我在每个单元格上都有单独的计时器。 我使用 2 秒计时器功能重新加载表格视图。

行代码的单元格如下:

 if data.current_state != 1{
        if data.isApplied == true
        {
                if cell.countdowlLbl.text != "00:00" || cell.countdowlLbl.isFinished != true
                {
                    cell.applyBtn.isHidden = true
                    cell.appliedUiView.isHidden = false
                    cell.AfterAppliedView.isHidden = true
                }    
                else
                {
                    data.current_state = 1
                    cell.applyBtn.isHidden = true
                    cell.appliedUiView.isHidden = true
                    cell.AfterAppliedView.isHidden = false
                }
            }else{
                cell.appliedUiView.isHidden = true
                cell.applyBtn.isHidden = false
                cell.AfterAppliedView.isHidden = true  
            }
    }else{
        cell.AfterAppliedView.isHidden = false
        cell.appliedUiView.isHidden = true
        cell.applyBtn.isHidden = true
    }

【问题讨论】:

  • 您的帖子中没有问题。请指定一个问题。

标签: ios swift timer tableview reset


【解决方案1】:
class TimerCell: UITableViewCell
 {
     var timer = Timer()
      var counter = 0
     @IBOutlet weak var btnStartTimer: UIButton!
      @IBOutlet weak var lblTimer: UILabel!


func startTimer()
{
    timer = Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(actiontimer), userInfo: nil, repeats: false)
    lblTimer.text = "\(timer)"
}

@objc func actiontimer() {
     counter += 1
    lblTimer.text = "\(counter)"
}
}

- Create timer with particular cell using table view cell class and start 
   timer on when select job. so, it's start only for that selected job .
- And Create all cell with different identifier like:



 tbl_Job.register(UINib(nibName: "TimerCell", bundle: nil), forCellReuseIdentifier: "TImerCell\(indexPath)")
    let cell = tbl_Job.dequeueReusableCell(withIdentifier: "TImerCell\(indexPath)", for: indexPath) as! TimerCell

【讨论】:

  • 回答问题时,请尽量不要只插入一段代码,还要添加cmets。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-08
  • 2013-12-30
相关资源
最近更新 更多