iOS開發(fā)中Cell上的跑秒

在iOS開發(fā)中有時會有cell上進(jìn)行跑秒的需求,如每個cell上顯示的每個商品的信息,每個商品都有一個時間的倒計時,當(dāng)時間為0的時候就可以進(jìn)行秒殺了。

我說一下我在實現(xiàn)這個需求的一些思路。

首先我們需要從后臺獲取這個剩余時間,這個剩余時間只有我們請求這個接口中的數(shù)據(jù)的時候這個剩余時間才進(jìn)行刷新。我們在拿到這個剩余時間之后我們就要對這個剩余時間進(jìn)行跑秒了,首先需要調(diào)用一個方法,我們假設(shè)這個方法名為A,我們調(diào)用方法A將我們拿到的時間顯示在cell的某個label上。在方法A中我們要將剩余時間做一個減法的操作即將當(dāng)前時間減去1秒,要想真正地實現(xiàn)跑秒的效果,我們需要每一秒都調(diào)用一下方法A。這時我們就需要在顯示TableView的控制器中發(fā)送一個通知,這個通知是每過一秒就發(fā)送一個通知,然后在cell中接收這個通知,接收到通知之后去調(diào)用方法A,這樣就實現(xiàn)了每過一秒就調(diào)用一次方法A,即對剩余時間做一個減1的操作,從而實現(xiàn)了跑秒的效果。

主要代碼:

#pragma mark - 倒計時通知回調(diào)

- (void)countDownNotification {

/// 判斷是否需要倒計時 -- 可能有的cell不需要倒計時,根據(jù)真實需求來進(jìn)行判斷

if (0) {

return;

}

/// 計算倒計時

NSString * count = [NSString stringWithFormat:@"%lld", _time];? // 剩余的秒數(shù)

NSInteger countDown = [count integerValue] - kCountDownManager.timeInterval;

//? ? NSInteger countDown = 100 - kCountDownManager.timeInterval;

/// 當(dāng)?shù)褂嫊r到了進(jìn)行回調(diào)

if (countDown <= 0) {

_timeLbl.text = @"00小時00分鐘00秒";

// 回調(diào)給控制器

!self.countDownZero ?: self.countDownZero();

return;

}

/// 重新賦值

_timeLbl.text = [NSString stringWithFormat:@"%02zd小時%02zd分鐘%02zd秒", countDown/3600, (countDown/60)%60, countDown%60];

}

效果圖:


附上demo鏈接:https://github.com/yangguanghei/Cell-

2019.3.15

核心思想:每次都用返回的時間減去從記時開始過去的時間得到剩余的時間

手動調(diào)用是為了每次給時間賦值的時候去刷新時間,通知調(diào)用是為了每過一秒刷新一下時間

本篇文章到這里就結(jié)束了,愿大家加班不多工資多,男同胞都有女朋友,女同胞都有男朋友。??

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 注: 這篇文章因無法重新編輯, 已重寫, 請參考新的文章: iOS 在cell中使用倒計時的處理方法(新) 需求:...
    大頭herob閱讀 13,151評論 82 44
  • 2017.02.22 可以練習(xí),每當(dāng)這個時候,腦袋就犯困,我這腦袋真是神奇呀,一說讓你做事情,你就犯困,你可不要太...
    Carden閱讀 1,490評論 0 1
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,603評論 30 472
  • 無論你現(xiàn)在是剛剛踏入二十歲的青春花季 還是即將跟三十而立掛起鉤的年紀(jì) 都可能會有很多熱血澆灌一片丹心赤誠 漸漸地 ...
    圖格那黎99閱讀 651評論 5 16
  • 從昨天開始兒子睡醒后告訴有點(diǎn)累,我摸一下他的頭感覺低燒,之后給量了體溫在38度,覺得問題不大就給吃了點(diǎn)藥就上班去...
    傲雪寒梅0801閱讀 124評論 0 0

友情鏈接更多精彩內(nèi)容