【发布时间】:2020-09-24 22:13:50
【问题描述】:
我想在我的应用主屏幕上显示小部件视图,就像在这个应用中一样:
我尝试从我的应用程序中调用WidgetEntryView,但它不起作用。
【问题讨论】:
我想在我的应用主屏幕上显示小部件视图,就像在这个应用中一样:
我尝试从我的应用程序中调用WidgetEntryView,但它不起作用。
【问题讨论】:
View 和Entry 创建单独的 文件:struct SimpleEntry: TimelineEntry {
let date: Date
}
struct SimpleWidgetEntryView: View {
var entry: SimpleProvider.Entry
var body: some View {
Text(entry.date, style: .time)
}
}
只选择这两个文件很重要 - 确保不会意外将 @main Widget / WidgetBundle 添加到 App 目标。
struct ContentView: View {
var body: some View {
SimpleWidgetEntryView(entry: .init(date: Date()))
}
}
这是一个GitHub repository,其中包含不同的小部件示例,包括预览小部件。
【讨论】:
我写了一个view controller 来在 UIKit 应用程序中显示小部件。我构建它是为了自动化我的屏幕截图,但您可以将其用作参考。
你可以看到它的样子here。
它支持所有小部件尺寸,虽然它没有确切的尺寸,但我认为它做得足够好。
就像已经提到的那样,您还需要将一些小部件视图文件添加到您的应用目标中。
【讨论】: