微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我想在我的小部件IOS中显示数组的元素

如何解决我想在我的小部件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 举报,一经查实,本站将立刻删除。