2016-06-08 53 views
0

我在UICollectionView的單元格上實現了一個倒數計時器,我從web服務獲得時間,但是它顯示靜態時間,當我回到UICollectionView時,根據剩餘的Web服務時間減少了課程時間。如何在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'對象或其他計時器觸發 - (從Web服務獲取新時間或根據您已有的信息計算)。獲取新時間後,您將重新加載指定索引處的單元格,或重新加載所有單元格(取決於您的需要)。 – 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)" 

使用此代碼