官方文档地址:https://developer.apple.com/documentation/WidgetKit
可以用的组件列表:https://developer.apple.com/documentation/widgetkit/swiftui-views
理解Timeline 刷新的时机
atEnd
这个就是在 TimelineProvider 提供的所有 entry 显示完毕之后自动刷新,
也就是说只要还有没有显示的 entry 在就不会刷新当前时间线
after(date)
date 这个参数可以是某一个特定时间值,在系统时间到达那一时刻后会使 Timeline 自动刷新
never
这个就是字面意思,永远不会刷新 Timeline,最后一个 entry 也展示完毕之后
Widget 就会一直保持那个 entry 的显示内容
对于 Name.intentdefinition 配置文件的理解
带有配置的小组件 https://developer.apple.com/documentation/widgetkit/making-a-configurable-widget
在配置文件里面添加的 Parameters 参数 ,xcode 会自动生成
NameIntent (对应名称)的类和相关的参数对象的类,直接用就OK。
如何添加多种小部件
///这种可以最多5个
@main
struct TameWidgets: WidgetBundle {
@WidgetBundleBuilder
var body: some Widget {
StatusWidget()
DetailWidget()
}
}
///这种可以写很多
@main
struct WidgetExamplesWidgetBundle: WidgetBundle {
var body: some Widget {
WidgetBundle1().body
WidgetBundle2().body
}
}
struct WidgetBundle1: WidgetBundle {
var body: some Widget {
AppGroupWidget()
ClockWidget()
CoreDataWidget()
CountdownWidget()
DeepLinkWidget()
}
}
struct WidgetBundle2: WidgetBundle {
var body: some Widget {
EnvironmentWidget()
NetworkWidget()
PreviewWidget()
TimerWidget()
URLImageWidget()
}
}
网友评论