UitableView不会滚动到第一个单元格之外

时间:2019-03-30 10:28:14

标签: ios swift

所以我有一个UITableView,并且在顶部单元格(第一个单元格)上,在cell.detailText上有一个计时器。计时器会显示,但是表格视图无法滚动到第一个单元格,因为此计时器会不断更新单元格文本标签。当用户滚动时,如何在不停止计时器的情况下使表格视图正确滚动? 请帮忙 预先感谢。

1 个答案:

答案 0 :(得分:1)

您不需要继续调用reloadData()。您可以在单元格本身中完成所有计时器工作-您只需要记住在完成计时器后会使计时器无效。我维护了一个执行类似操作的应用程序,并使用以下命令:

@IBOutlet weak var timeLeftLbl: UILabel!
var secondTimer: Timer!
var secondsLeft: Int = 0


func configureCell(item: PreviousAuctionItem) {


    //Timers
    secondsLeft = getSecondsLeft(endTime: item.endDate)

    timeLeftLbl.text = secondsLeft

    secondTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(self.decreaseTimeLeft), userInfo: nil, repeats: true)
}

@objc func decreaseTimeLeft() {
    if secondsLeft > 0 {
        secondsLeft -= 1
        timeLeftLbl.text = secondsLeft.formatTimeAsString()
    } else {
        timeLeftLbl.text = ""
        secondTimer?.invalidate()
    }
}
    override func prepareForReuse() {

    secondTimer?.invalidate()
}

getSeconds方法是一种API方法,我用来获取商品剩余的时间。

希望这会有所帮助!