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

将图片添加到小部件

如何解决将图片添加到小部件

我正在尝试编写一个可以显示图像的简单小部件。此图像位于应用程序的资产中。到目前为止,这是我的代码。大部分是从标准模板复制过来的:

import WidgetKit
import SwiftUI

struct Provider: TimelineProvider {
    func placeholder(in context: Context) -> SimpleEntry {
        SimpleEntry(date: Date())
    }

    func getSnapshot(in context: Context,completion: @escaping (SimpleEntry) -> ()) {
        let entry = SimpleEntry(date: Date())
        completion(entry)
    }

    func getTimeline(in context: Context,completion: @escaping (Timeline<Entry>) -> ()) {
        var entries: [SimpleEntry] = []

        // 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: .hour,value: hourOffset,to: currentDate)!
            let entry = SimpleEntry(date: entryDate)
            entries.append(entry)
        }

        let timeline = Timeline(entries: entries,policy: .atEnd)
        completion(timeline)
    }
}

struct SimpleEntry: TimelineEntry {
    let date: Date
}

struct contactCodeEntryView : View {
    var entry: Provider.Entry

    var body: some View {
        vstack {
            Image("picture")
                .resizable()
                .scaledToFit()
        }
    }
}

@main
struct contactCode: Widget {
    let kind: String = "contactCode"

    var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind,provider: Provider()) { entry in
            contactCodeEntryView(entry: entry)
        }
        .configurationdisplayName("My Widget")
        .description("This is an example widget.")
    }
}

struct contactCode_Previews: PreviewProvider {
    static var previews: some View {
        contactCodeEntryView(entry: SimpleEntry(date: Date()))
            .previewContext(WidgetPreviewContext(family: .systemSmall))
    }
}

我知道小部件可以与 SwiftUI 一起使用,但是当我尝试预览/运行此代码时,我只得到一个空白小部件。当我尝试在其他 SwiftUI 项目中运行来自 contactCodeEntryView(略有修改)的代码时,它可以工作。为什么?有人可以帮我吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。