Swiftui TimelineProvider中的小部件大小和@Environment值不匹配
大家早上好, 我正在使用一个API开发一个小部件,该API根据小部件的大小发送不同大小的数组(小:3条新闻,中:6条新闻,大:9条新闻) 我的印象是,Swiftui TimelineProvider中的小部件大小和@Environment值不匹配,swiftui,widgetkit,Swiftui,Widgetkit,大家早上好, 我正在使用一个API开发一个小部件,该API根据小部件的大小发送不同大小的数组(小:3条新闻,中:6条新闻,大:9条新闻) 我的印象是,@Environment(\.widgetFamily)var家族和TimelineProvider的timeline函数(我在这里调用API)之间存在问题 实际上,在这个函数中,环境变量始终等于systemMedium大小,尽管小部件的大小是“真实的” 你也有同样的问题吗? 这是已知的苹果病毒吗? 如何解决此错误 感谢您的帮助:在没有看到您的代码
@Environment(\.widgetFamily)var家族
和TimelineProvider的timeline函数(我在这里调用API)之间存在问题
实际上,在这个函数中,环境变量始终等于systemMedium大小,尽管小部件的大小是“真实的”
你也有同样的问题吗?
这是已知的苹果病毒吗?
如何解决此错误
感谢您的帮助:在没有看到您的代码的情况下,我猜测您没有访问传递到
TimelineProvider
的TimelineProviderContext
的系列属性
您的TimelineProvider
应该类似于:
struct MyProvider: TimelineProvider {
func snapshot(with context: Context, completion: @escaping (Entry) -> ()) {
fetchNewsArticles(for: context.family) { articles in
// ...
completion(...)
}
}
}
func fetchNewsArticles(for widgetFamily: WidgetFamily, completion: @escaping ... )
{
switch family {
case .systemSmall:
// ...
}
您能显示您的代码吗?从API基本获取,然后我用小部件的三种尺寸进行切换。但它总是会变成中等大小的。。。