Swift - UITableViewCell倒计时重用解决方案
Posted YouXianMing
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift - UITableViewCell倒计时重用解决方案相关的知识,希望对你有一定的参考价值。
Swift - UITableViewCell倒计时重用解决方案
效果
源码
https://github.com/YouXianMing/Swift-Animations
// // CountDownTimerController.swift // Swift-Animations // // Created by YouXianMing on 16/9/4. // Copyright © 2016年 YouXianMing. All rights reserved. // import UIKit class CountDownTimerController: NormalTitleViewController, UITableViewDelegate, UITableViewDataSource { var timesArray : [CellDataAdapter]! var tableView : UITableView! var timer : GCDTimer = GCDTimer(inQueue: GCDQueue.mainQueue) override func setup() { super.setup() // Create data source. timesArray = [CellDataAdapter]() func add(title title : String, countdownTime : Int) { timesArray.append(CountDownTimeCell.Adapter(data: TimeModel(title: title, countdownTime: countdownTime))) } add(title: "YouXianMing", countdownTime: 20034) add(title: "Aaron", countdownTime: 31) add(title: "Nicholas", countdownTime: 1003) add(title: "Quentin", countdownTime: 394) add(title: "Samirah", countdownTime: 345345) add(title: "Serafina", countdownTime: 233) add(title: "Shanon", countdownTime: 4649) add(title: "Sophie", countdownTime: 3454) add(title: "Steven", countdownTime: 54524) add(title: "Saadiya", countdownTime: 235) // Create TableView. tableView = UITableView(frame: (contentView?.bounds)!) tableView.delegate = self tableView.dataSource = self tableView.separatorStyle = .None tableView.rowHeight = 60 contentView?.addSubview(tableView) // Register cell. CountDownTimeCell.RegisterTo(tableView) // Timer event. weak var wself = self timer.event({ for (_, dataAdapter) in wself!.timesArray.enumerate() { if let model = dataAdapter.data as? TimeModel { model.countDown() } } DefaultNotificationCenter.PostMessageTo(NotificationEvent.CountDownTimeCellCountDown.Message()) }, timeIntervalWithSeconds: 1.0) timer.start() } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return timesArray.count } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { return tableView.dequeueCellAndLoadContentFromAdapter(timesArray[indexPath.row], indexPath: indexPath) } func tableView(tableView: UITableView, willDisplayCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { (cell as! CustomCell).display = true } func tableView(tableView: UITableView, didEndDisplayingCell cell: UITableViewCell, forRowAtIndexPath indexPath: NSIndexPath) { (cell as! CustomCell).display = false } }
以上是关于Swift - UITableViewCell倒计时重用解决方案的主要内容,如果未能解决你的问题,请参考以下文章
Swift3:UITableViewCell 和 UIButton - 通过单击 UIButton 显示和隐藏 UITableViewCell
从另一个视图控制器单击 uitableviewcell 后,swift 3 更改 uitableviewcell?
Swift:在 nstimer 倒计时结束时转换到新的视图控制器 [重复]