2016-06-08 3 views
0

Я осуществил таймер обратного отсчета по ячейке в UICollectionView, и я получаю время от webservice, но он показывает статическое время, когда я возвращаюсь и приходит снова в UICollectionView, время класса уменьшается в соответствии с оставшимся временем веб-службы.Как использовать живой таймер на UICollectionViewCell?

Но я хочу показать его живым каждый раз, когда он уменьшается с одной секундой, любая помощь приветствуется.

Мой код:

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell 
{ 

    let cell = collectionView.dequeueReusableCellWithReuseIdentifier("cell", forIndexPath: indexPath) as! ManageObjectCollectionViewCell 
    revealTime = getRevealtime[indexPath.section].objectAtIndex(indexPath.row) as! Int    
    minutes = revealTime/60   
    seconds = revealTime % 60 
    cell.HourLabel.text = "0" 
    cell.MinLabel.text = NSString(string: "\(minutes)") as String 
    cell.sec.text = NSString(string: "\(seconds)") as String 
} 
+0

не совсем понятно. можете ли вы попытаться лучше объяснить пример? – Shubhank

+0

У вас есть объект «NSTimer» или другой таймер для запуска, когда это необходимо для обновления - (либо извлечение нового времени из веб-службы, либо вычисление его на основе уже имеющейся информации). По истечении нового времени вы перезагрузите ячейку по указанному индексу или перезагрузите все ячейки (в зависимости от ваших потребностей). – DJohnson

ответ

0
let currentTime = NSDate.timeIntervalSinceReferenceDate() 

    //Find the difference between current time and start time. 
    var elapsedTime: NSTimeInterval = currentTime - startTime 

    //calculate the hours in elapsed time. 
    let hours = UInt8(elapsedTime/3600.0) 
    elapsedTime -= (NSTimeInterval(hours) * 3600) 


    //calculate the minutes in elapsed time. 
    let minutes = UInt8(elapsedTime/60.0) 
    elapsedTime -= (NSTimeInterval(minutes) * 60) 

    //calculate the seconds in elapsed time. 
    let seconds = UInt8(elapsedTime) 
    elapsedTime -= NSTimeInterval(seconds) 

    //find out the fraction of milliseconds to be displayed. 
    // let fraction = UInt8(elapsedTime * 100) 

    //add the leading zero for minutes, seconds and millseconds and store them as string constants 

    let strMinutes = String(format: "%02d", minutes) 
    let strSeconds = String(format: "%02d", seconds) 
    let hourss = String(format: "%02d", hours) 

    //concatenate minuets, seconds and milliseconds as assign it to the UILabel 
    lblDisplayTime.text = "\(hourss):\(strMinutes):\(strSeconds)" 

использовать этот код

Смежные вопросы