如何解决我想在我的小部件IOS中显示数组的元素
.大家好。我想创建一个小部件。我做了一个项目,并将这个结构体 SuggestionsDetails。 我还创建了对象“milanais、mexicain、terrine、coquillettes、auvergnat、Ococher”并将它们放在一个数组中:
struct SuggestionsDetails {
let nameProduct : String
let imageProduct : String
init(imageProduct :String,nameProduct : String) {
self.nameProduct = nameProduct
self.imageProduct = imageProduct
/*if let image = UIImage(named: imageProduct){
self.imageProduct = image
}else{
self.imageProduct = UIImage(named: "default")!
}*/
}
static let milanais = SuggestionsDetails(imageProduct: "milanais",nameProduct: "Le milanais")
static let mexicain = SuggestionsDetails(imageProduct: "mexicain",nameProduct: "Le mexicain")
static let terrine = SuggestionsDetails(imageProduct: "terrine",nameProduct: "Terrine campagne")
static let coquillette = SuggestionsDetails(imageProduct: "coquillettes",nameProduct: "Coquillette parisienne")
static let auvergnat = SuggestionsDetails(imageProduct: "auvergnat",nameProduct: "L'auvergnat")
static let Ococher = SuggestionsDetails(imageProduct: "Ococher",nameProduct: " Burger Ococher")
static let productArray = [milanais,mexicain,terrine,coquillette,auvergnat,Ococher]
}
我想将我的数组(milanais、mexicain、OCocher、coquillette)中的数据显示在我的数组(productArray)中到 func getTimeLine。我尝试过,但我还没有找到解决方案。
请问你有什么想法吗?
import SwiftUI
import Intents
struct Provider: IntentTimelineProvider {
func placeholder(in context: Context) -> RangerEntry {
RangerEntry(date: Date(),configuration: ConfigurationIntent(),ranger: .mexicain)
}
func getSnapshot(for configuration: ConfigurationIntent,in context: Context,completion: @escaping (RangerEntry) -> ()) {
let entry = RangerEntry(date: Date(),configuration: configuration,ranger: .mexicain)
completion(entry)
}
func getTimeline(for configuration: ConfigurationIntent,completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [RangerEntry] = []
// Generate a timeline consisting of five entries an hour apart,starting from the current date.
let currentDate = Date()
for hourOffset in 0 ..< 5 {
let entryDate = Calendar.current.date(byAdding: .minute,value: hourOffset,to: currentDate)!
let entry = RangerEntry(date: entryDate,ranger: .auvergnat)
entries.append(entry)
}
let timeline = Timeline(entries: entries,policy: .atEnd)
completion(timeline)
}
}
struct RangerEntry: TimelineEntry {
let date: Date
let configuration: ConfigurationIntent
let ranger : SuggestionsDetails
}
struct variantExtendEntryView : View {
var entry: Provider.Entry
@Environment(\.widgetFamily) var family
var body: some View {
switch family {
case .systemSmall :
SuggestionsView(suggestion: .milanais)
default:
SuggestionsView(suggestion: .Ococher)
}
}
}
@main
struct variantExtend: Widget {
let kind: String = "variantExtend"
var body: some WidgetConfiguration {
IntentConfiguration(kind: kind,intent: ConfigurationIntent.self,provider: Provider()) { entry in
variantExtendEntryView(entry: entry)
}
.configurationdisplayName("Les suggestions Ô'Cocher")
.description("Un délice journalier.")
.supportedFamilies([.systemLarge,.systemSmall,.systemMedium])
}
}
struct variantExtend_Previews: PreviewProvider {
static var previews: some View {
Group{
variantExtendEntryView(entry: RangerEntry(date: Date(),ranger: .milanais))
.previewContext(WidgetPreviewContext(family: .systemLarge
)).redacted(reason: .placeholder)
variantExtendEntryView(entry: RangerEntry(date: Date(),ranger: .mexicain))
.previewContext(WidgetPreviewContext(family: .systemMedium
))
variantExtendEntryView(entry: RangerEntry(date: Date(),ranger: .coquillette))
.previewContext(WidgetPreviewContext(family: .systemSmall
))
}
}
}
``
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。