AppleWatch打工人表盘倒计时实现

6 阅读1分钟

思路就是在getTimeline方法里控制不同的状态,根据主应用app里面传递过来的时间进行换算判断不同时刻的状态,然后把各个时间节点加到Timeline里面。

注意:

    // 小组件 一天有 40 ~ 70 次刷新机会

var timeCount = ((24 * 60)/40)

if #available(iOS 16, *) {

timeCount = ((24 * 60)/70)

}

 // atEnd: 指Timeline执行到最后一个时间片的时候再执行一次getTimeline方法

// atAfter: 指在某个时间以后有规律的刷新(最短间隔为5分钟,即使设置的时间小于5分钟,系统也会按5分钟进行调用)

// never:指以后不需要刷新了,什么时候需要重新刷新需要App重新告知 Widget

这里使用的.atEnd

ex:

let entry = SimpleEntry(date: Calendar.current.date(byAdding: .hour, value: 1, to: currentDate)!,item_hrv: model_hrv,workOffItem: workOffModel)

entries.append(entry)

一小时后刷新