晴川云IOS教程:在小组件中显示动态日期

概览

因为小组件扩展不会一直运行,所以你无法直接更新小组件的内容。WidgetKit 会代你渲染小组件的视图并显示结果。但那些在小组件显示时继续更新的内容,也可以借助某些 SwiftUI 视图来呈现。

使用小组件中的文本 视图,可以在屏幕上显示最新的日期和时间。下面的示例显示了可用的组合。

要显示自动更新的相对时间:

 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

使用相对 样式显示当前日期和时间与指定日期之间的绝对差异,无论日期是在未来还是过去。偏移 样式显示当前日期和时间与指定日期之间的差异,用减号 (-) 前缀表示未来的日期,用加号 (+) 前缀表示过去的日期。

要显示持续自动更新的计时器:

 let components = DateComponents(minute: 15) let futureDate = Calendar.current.date(byAdding: components, to: Date())!   Text(futureDate, style: .timer) // Displays: // 15:00

对于未来的日期,计时器 样式会进行倒计时,直到当前时间达到指定的日期和时间,对于过去的日期则进行正计时。

要显示绝对日期或时间:

 // 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

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/3553.html

(0)
晴川运维晴川运维
上一篇 2025年6月4日
下一篇 2025年6月4日

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注