欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Swift3.0 GCD定時(shí)器的使用DEMO

 更新時(shí)間:2017年02月22日 10:28:27   作者:Stevin三天三夜的專欄  
這篇文章主要介紹了Swift3.0 GCD定時(shí)器的使用,實(shí)現(xiàn)倒計(jì)時(shí),UIDatePicker的使用, 仿寫(xiě)一個(gè)活動(dòng)倒計(jì)時(shí)的DEMO,需要的朋友可以參考下

 直接看主要代碼

//截止日期
let endDate = datePicker.date
//開(kāi)始日期
let startDate = Date()
//時(shí)間間隔
let timeInterval:TimeInterval = endDate.timeIntervalSince(startDate)
if timer == nil {
 //剩余時(shí)間
 var timeout = timeInterval
 if timeout != 0 {
 //創(chuàng)建全局隊(duì)列
 let queue = DispatchQueue.global()
 //在全局隊(duì)列下創(chuàng)建一個(gè)時(shí)間源
 timer = DispatchSource.makeTimerSource(flags: [], queue: queue)
 //設(shè)定循環(huán)的間隔是一秒,并且立即開(kāi)始
 timer?.scheduleRepeating(wallDeadline: DispatchWallTime.now(), interval: .seconds(1))
 //時(shí)間源出發(fā)事件
 timer?.setEventHandler(handler: {
  //必須是當(dāng)前日期往后的日期,在datePicker上也做了限制
  if timeout <= 0 {
  self.timer?.cancel()
  self.timer = nil
  DispatchQueue.main.async(execute: {
   self.day.text = "00"
   self.hour.text = "00"
   self.minute.text = "00"
   self.second.text = "00"
  })
  } else {
  //計(jì)算剩余時(shí)間
  let days = Int(timeout) / (3600 * 24)
  if days == 0 {
   self.day.text = ""
  }
  let hours = (Int(timeout) - Int(days) * 24 * 3600) / 3600
  let minutes = (Int(timeout) - Int(days) * 24 * 3600 - Int(hours) * 3600) / 60
  let seconds = Int(timeout) - Int(days) * 24 * 3600 - Int(hours) * 3600 - Int(minutes) * 60
  //主隊(duì)列中刷新UI
  DispatchQueue.main.async(execute: {
   if days == 0 {
   self.day.text = "0"
   } else {
   self.day.text = "\(days)"
   }
   if hours < 10 {
   self.hour.text = "0" + "\(hours)"
   } else {
   self.hour.text = "\(hours)"
   }
   if minutes < 10 {
   self.minute.text = "0" + "\(minutes)"
   } else {
   self.minute.text = "\(minutes)"
   }
   if seconds < 10 {
   self.second.text = "0" + "\(seconds)"
   } else {
   self.second.text = "\(seconds)"
   }
  })
  timeout -= 1
  }
 })
 //啟動(dòng)時(shí)間源
 timer?.resume()
 }
}

DEMO效果圖

這里寫(xiě)圖片描述

DEMO下載地址

相關(guān)文章

  • 深入解析Swift編程中的構(gòu)造方法

    深入解析Swift編程中的構(gòu)造方法

    先進(jìn)的Swfit語(yǔ)言同樣具有構(gòu)造方法,構(gòu)造方法在對(duì)象被創(chuàng)建后會(huì)首先被調(diào)用,這里我們就來(lái)深入解析Swift編程中的構(gòu)造方法:
    2016-07-07
  • 深入探究Swift枚舉關(guān)聯(lián)值的內(nèi)存

    深入探究Swift枚舉關(guān)聯(lián)值的內(nèi)存

    這篇文章主要給大家介紹了關(guān)于Swift枚舉關(guān)聯(lián)值的內(nèi)存的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用Swift具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音詳解

    swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音詳解

    將漢字轉(zhuǎn)換為拼音更利于我們大家開(kāi)發(fā)搜索功能,所以這篇文章主要給大家介紹了關(guān)于swift如何利用系統(tǒng)庫(kù)將漢字轉(zhuǎn)換為拼音的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-10-10
  • Swift重構(gòu)自定義空等運(yùn)算符 “??=” 實(shí)例

    Swift重構(gòu)自定義空等運(yùn)算符 “??=” 實(shí)例

    這篇文章主要為大家介紹了Swift重構(gòu)自定義空等運(yùn)算符 “??=” 實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 使用swift實(shí)現(xiàn)計(jì)算器功能

    使用swift實(shí)現(xiàn)計(jì)算器功能

    這篇文章主要為大家詳細(xì)介紹了使用swift實(shí)現(xiàn)計(jì)算器功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例

    SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例

    緩存就是一個(gè)存儲(chǔ)器,常用 Redis作為緩存數(shù)據(jù)庫(kù),本文主要介紹了SpringBoot3.0集成Redis緩存的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Swift利用CoreData實(shí)現(xiàn)一個(gè)通訊錄存儲(chǔ)詳解

    Swift利用CoreData實(shí)現(xiàn)一個(gè)通訊錄存儲(chǔ)詳解

    這篇文章主要給大家介紹了關(guān)于Swift利用CoreData實(shí)現(xiàn)一個(gè)通訊錄存儲(chǔ)的相關(guān)資料,本文是大家學(xué)習(xí)coreDate的基礎(chǔ)問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • 簡(jiǎn)單了解Swift語(yǔ)言中的break和continue語(yǔ)句的用法

    簡(jiǎn)單了解Swift語(yǔ)言中的break和continue語(yǔ)句的用法

    這篇文章主要簡(jiǎn)單介紹了Swift語(yǔ)言中的break和continue語(yǔ)句的用法,與其他語(yǔ)言的一樣用于循環(huán)語(yǔ)句流程控制,需要的朋友可以參考下
    2015-11-11
  • 解決 Xcode 6-Beta2 智能提示bug

    解決 Xcode 6-Beta2 智能提示bug

    最近開(kāi)始學(xué)習(xí) Swift ,因?yàn)楦杏X(jué)這個(gè)真是個(gè)不錯(cuò)的東西,有很多新的特性,雖然 Titanium 之后也必定會(huì)支持,但總有不少東西要使用原生開(kāi)發(fā)才可以實(shí)現(xiàn),所以就乘這個(gè)新語(yǔ)言出來(lái)之際開(kāi)始學(xué)習(xí)啦!
    2014-07-07
  • iOS開(kāi)發(fā)中Swift 指紋驗(yàn)證功能模塊實(shí)例代碼

    iOS開(kāi)發(fā)中Swift 指紋驗(yàn)證功能模塊實(shí)例代碼

    本文給大家分享ios調(diào)用touchid代碼塊,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下把
    2017-03-03

最新評(píng)論