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

IOS小組件實現(xiàn)時鐘按秒刷新功能

 更新時間:2021年05月21日 15:44:48   作者:popfisher  
小組件運行在單獨的進(jìn)程,如果異常會導(dǎo)致小組件進(jìn)程卡死了,一個小組件出問題,其他小組件都不刷新了。既然刷新這么難控制,怎么實現(xiàn)數(shù)字時鐘按秒刷新呢?接下來通過代碼給大家介紹下ios小組件刷新功能的實現(xiàn),一起看看吧

引言

  上一節(jié)中我們了解了IOS小組件的刷新機(jī)制,發(fā)現(xiàn)根本沒法實現(xiàn)按秒刷新,但是看別的App里面有做到,以為用了什么黑科技,原來是因為系統(tǒng)提供了一個額外的機(jī)制實現(xiàn)時間的動態(tài)更新,不用走小組件的刷新機(jī)制。

Text控件支持顯示日期時間,下面是來自官網(wǎng)的代碼

計算時間差

let components = DateComponents(minute: 11, second: 14)
let futureDate = Calendar.current.date(byAdding: components, to: Date())!

Text(futureDate, style: .relative)
// Displays:
// 11 min, 14 sec

Text(futureDate, style: .offset)
// Displays:
// -11 minutes

  使用relative樣式可以顯示當(dāng)前日期和時間與指定日期之間的差值(絕對值),而不管該日期是將來的還是過去的日期。使用offset樣式顯示當(dāng)前日期和時間與指定日期之間的時差,表示將來的日期帶有減號(-)前綴,而過去的日期帶有加號(+)前綴。

倒計時和計時器

let components = DateComponents(minute: 15)
let futureDate = Calendar.current.date(byAdding: components, to: Date())!

Text(futureDate, style: .timer)
// Displays:
// 15:00

  對于將來的日期,timer樣式將遞減計數(shù)(倒計時),直到當(dāng)前時間達(dá)到指定的日期和時間為止,并在日期經(jīng)過時遞增計數(shù)(計時器)。

顯示絕對日期或時間

// Absolute Date or Time
let components = DateComponents(year: 2020, month: 4, day: 1, hour: 9, minute: 41)
let aprilFirstDate = Calendar.current(components)!

Text(aprilFirstDate, style: .date)
Text("Date: \(aprilFirstDate, style: .date)")
Text("Time: \(aprilFirstDate, style: .time)")

// Displays:
// April 1, 2020
// Date: April 1, 2020
// Time: 9:41AM

顯示兩個日期之間的時間間隔

let startComponents = DateComponents(hour: 9, minute: 30)
let startDate = Calendar.current.date(from: startComponents)!

let endComponents = DateComponents(hour: 14, minute: 45)
let endDate = Calendar.current.date(from: endComponents)!

Text(startDate ... endDate)
Text("The meeting will take place: \(startDate ... endDate)")

// Displays:
// 9:30AM-2:45PM
// The meeting will take place: 9:30AM-2:45PM

實現(xiàn)一天時間的計時器

  使用 style: .time樣式,如果當(dāng)前的時間比指定的時間大,則時間就會累計?;谶@個原理,我們只需要把時間起點定在每天的0點即可,根據(jù)當(dāng)前的時間計算出今天的開始時間。以下方法可以根據(jù)12,24小時制度,獲取當(dāng)天起點時間。

//獲取當(dāng)天開始的日期,給Date增加一個拓展方法
 extension Date {
    func getCurrentDayStart(_ isDayOf24Hours: Bool)-> Date {
        let calendar:Calendar = Calendar.current;
        let year = calendar.component(.year, from: self);
        let month = calendar.component(.month, from: self);
        let day = calendar.component(.day, from: self);
    
        let components = DateComponents(year: year, month: month, day: day, hour: 0, minute: 0, second: 0)
        return Calendar.current.date(from: components)!
    }
}
// 實現(xiàn)一天內(nèi)的計時器
Text(Date().getCurrentDayStart(true), style: .timer)

結(jié)語

  通過IOS Text控件我們實現(xiàn)了按秒刷新的計時器,所以數(shù)字時鐘的按秒刷新算是解決了,但是怎么實現(xiàn)表盤時鐘的秒針360度旋轉(zhuǎn)呢?如果讓秒針精確的對應(yīng)當(dāng)前的時間,應(yīng)該做不到了。后面再繼續(xù)研究,如果有解決方案的可以貢獻(xiàn)一下,感謝。

相關(guān)文章

  • iOS如何固定UITableView中cell.imageView.image的圖片大小

    iOS如何固定UITableView中cell.imageView.image的圖片大小

    這篇文章主要給大家介紹了關(guān)于iOS如何固定UITableView中cell.imageView.image圖片大小的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位iOS開發(fā)者們的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • iOS中 UIActionSheet字體的修改

    iOS中 UIActionSheet字體的修改

    這篇文章主要介紹了iOS中 UIActionSheet字體的修改,需要的朋友可以參考下
    2017-06-06
  • iOS本地推送簡單實現(xiàn)代碼

    iOS本地推送簡單實現(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了iOS本地推送簡單實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • iOS簡單實現(xiàn)輪播圖效果

    iOS簡單實現(xiàn)輪播圖效果

    這篇文章主要為大家詳細(xì)介紹了iOS簡單實現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 詳解iOS自定義UITabBar與布局

    詳解iOS自定義UITabBar與布局

    本篇文章給大家詳細(xì)分析了iOS自定義UITabBar與布局的實際操作過程以及相關(guān)代碼分享,一起學(xué)習(xí)下。
    2018-02-02
  • iOS中詳解Block作為property屬性實現(xiàn)頁面之間傳值

    iOS中詳解Block作為property屬性實現(xiàn)頁面之間傳值

    這篇文章主要介紹了iOS中Block作為property屬性實現(xiàn)頁面之間傳值的相關(guān)知識點,以及代碼分享,一起學(xué)習(xí)下吧。
    2018-02-02
  • Objective-C封裝字符串存儲操作示例

    Objective-C封裝字符串存儲操作示例

    這篇文章主要介紹了Objective-C封裝字符串存儲操作示例,需要的朋友可以參考下
    2014-05-05
  • iOS中常見正則表達(dá)式驗證方法

    iOS中常見正則表達(dá)式驗證方法

    本篇文章主要介紹了iOS中常見正則表達(dá)式驗證方法,主要包括有身份證、手機(jī)號、軍官證,有興趣的可以了解一下。
    2017-06-06
  • ios scrollview嵌套tableview同向滑動的示例

    ios scrollview嵌套tableview同向滑動的示例

    本篇文章主要介紹了ios scrollview嵌套tableview同向滑動的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • iOS實時監(jiān)控網(wǎng)絡(luò)狀態(tài)的改變

    iOS實時監(jiān)控網(wǎng)絡(luò)狀態(tài)的改變

    這篇文章主要為大家詳細(xì)介紹了iOS實時監(jiān)控網(wǎng)絡(luò)狀態(tài)的改變的相關(guān)資料,感興趣的小伙伴們可以參考一下
    2016-08-08

最新評論