倒計(jì)時(shí)功能實(shí)踐 屬性字符串

F3C993B5-1415-4F0F-B0E3-451AC2589D81.png

1 獲取當(dāng)前時(shí)間 和目標(biāo)時(shí)間 計(jì)算相差多少
2 使用gcd 獲取倒計(jì)時(shí)
3 屬性字符串 設(shè)置 時(shí)分秒 的字體和背景色

{
    dispatch_source_t  _timer;
}
        NSString *deadlineStr = self.model.auction.endTime;
                
                NSString *nowStr = [NSString getCurrentTimeyyyymmdd];
                NSInteger secondsCountDown = [NSString getDateDifferenceWithNowDateStr:nowStr deadlineStr:deadlineStr];
                [self setdata:secondsCountDown];

- (void)setdata:(NSInteger)secondsCountDown{
    __weak __typeof(self) weakSelf = self;
    
    if (_timer == nil) {
        __block NSInteger timeout = secondsCountDown; // 倒計(jì)時(shí)時(shí)間
        
        if (timeout!=0) {
            dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
            _timer  = dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER, 0, 0, queue);
            dispatch_source_set_timer(_timer, dispatch_walltime(NULL, 0), 1.0*NSEC_PER_SEC,  0); //每秒執(zhí)行
            dispatch_source_set_event_handler(_timer, ^{
                if(timeout <= 0){ //  當(dāng)?shù)褂?jì)時(shí)結(jié)束時(shí)做需要的操作: 關(guān)閉 活動(dòng)到期不能提交
                    dispatch_source_cancel(self->_timer);
                    self->_timer = nil;
                    dispatch_async(dispatch_get_main_queue(), ^{
//                        weakSelf.timeLabel.text = @"當(dāng)前活動(dòng)已結(jié)束";
                        weakSelf.headerView.titleLabel.text = @"已結(jié)束";
                    });
                } else { // 倒計(jì)時(shí)重新計(jì)算 時(shí)/分/秒
                    NSInteger days = (int)(timeout/(3600*24));
                    NSInteger hours = (int)((timeout-days*24*3600)/3600);
                    NSInteger minute = (int)(timeout-days*24*3600-hours*3600)/60;
                    NSInteger second = timeout - days*24*3600 - hours*3600 - minute*60;
                    NSString *strTime = [NSString stringWithFormat:@"距結(jié)束還有: %02ld 時(shí) %02ld 分 %02ld 秒",hours, minute,second];
                    dispatch_async(dispatch_get_main_queue(), ^{
                        if (days == 0) {

//                          weakSelf.headerView.titleLabel.text = strTime;
                            
                            NSString *endstr =  strTime;
                                                    NSMutableAttributedString *mutablestr = [[NSMutableAttributedString alloc]initWithString:endstr];
                                                    NSDictionary *attris = @{NSForegroundColorAttributeName:[UIColor whiteColor],NSBackgroundColorAttributeName: ZHColor(140, 190, 250, 1),NSForegroundColorAttributeName:[UIColor whiteColor]};
                                                       [mutablestr setAttributes:attris range:NSMakeRange(7,2)];
                                                      [mutablestr setAttributes:attris range:NSMakeRange(12,2)];
                                                      [mutablestr setAttributes:attris range:NSMakeRange(17,2)];
                                                    weakSelf.headerView.titleLabel.attributedText = mutablestr;
                            
                        } else {

                            NSString *endstr =  [NSString stringWithFormat:@"距結(jié)束還有: %ld 天 %02ld 時(shí) %02ld 分 ",days,hours, minute];
                            NSMutableAttributedString *mutablestr = [[NSMutableAttributedString alloc]initWithString:endstr];
                            NSDictionary *attris = @{NSForegroundColorAttributeName:[UIColor whiteColor],NSBackgroundColorAttributeName: ZHColor(140, 190, 250, 1),NSForegroundColorAttributeName:[UIColor whiteColor]};
                               [mutablestr setAttributes:attris range:NSMakeRange(7,2)];
                              [mutablestr setAttributes:attris range:NSMakeRange(12,2)];
                              [mutablestr setAttributes:attris range:NSMakeRange(17,2)];
                            weakSelf.headerView.titleLabel.attributedText = mutablestr;
                        }
                        
                    });
                    timeout--; // 遞減 倒計(jì)時(shí)-1(總時(shí)間以秒來計(jì)算)
                }
            });
            dispatch_resume(_timer);
        }
    }
  
}


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末这刷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子掸驱,更是在濱河造成了極大的恐慌备埃,老刑警劉巖秸仙,帶你破解...
    沈念sama閱讀 221,430評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡党饮,警方通過查閱死者的電腦和手機(jī)涂滴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,406評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門友酱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人柔纵,你說我怎么就攤上這事缔杉。” “怎么了搁料?”我有些...
    開封第一講書人閱讀 167,834評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵或详,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我郭计,道長(zhǎng)霸琴,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,543評(píng)論 1 296
  • 正文 為了忘掉前任昭伸,我火速辦了婚禮梧乘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庐杨。我一直安慰自己选调,他們只是感情好嗡善,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,547評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著学歧,像睡著了一般罩引。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上枝笨,一...
    開封第一講書人閱讀 52,196評(píng)論 1 308
  • 那天袁铐,我揣著相機(jī)與錄音,去河邊找鬼横浑。 笑死剔桨,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的徙融。 我是一名探鬼主播洒缀,決...
    沈念sama閱讀 40,776評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼欺冀!你這毒婦竟也來了树绩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,671評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤隐轩,失蹤者是張志新(化名)和其女友劉穎饺饭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體职车,經(jīng)...
    沈念sama閱讀 46,221評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瘫俊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,303評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了悴灵。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片扛芽。...
    茶點(diǎn)故事閱讀 40,444評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖积瞒,靈堂內(nèi)的尸體忽然破棺而出川尖,到底是詐尸還是另有隱情,我是刑警寧澤赡鲜,帶...
    沈念sama閱讀 36,134評(píng)論 5 350
  • 正文 年R本政府宣布空厌,位于F島的核電站,受9級(jí)特大地震影響银酬,放射性物質(zhì)發(fā)生泄漏嘲更。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,810評(píng)論 3 333
  • 文/蒙蒙 一揩瞪、第九天 我趴在偏房一處隱蔽的房頂上張望赋朦。 院中可真熱鬧,春花似錦、人聲如沸宠哄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,285評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毛嫉。三九已至诽俯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間承粤,已是汗流浹背暴区。 一陣腳步聲響...
    開封第一講書人閱讀 33,399評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辛臊,地道東北人仙粱。 一個(gè)月前我還...
    沈念sama閱讀 48,837評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像彻舰,于是被迫代替她去往敵國(guó)和親伐割。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,455評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容