Ios WidgetKit自定义意图参数选择

Ios WidgetKit自定义意图参数选择,ios,swiftui,widgetkit,Ios,Swiftui,Widgetkit,我正在用WidgetKit、SwiftUI等为iOS中的应用程序构建一个小部件。 我已经创建了一个自定义意图和自定义对象以在应用程序中使用,当点击“编辑小部件”时,我从UserDefaults中获取一个自定义项目列表 问题是,我是否可以自定义iOS向我显示的第二个视图的外观以及项目列表等 这就是我所说的观点: 环顾四周,我发现: 这给了我很多很好的暗示,但对我想要达到的目标却一无所知 在视频中,他们展示了以下内容: 这将是相同的视图,但有一些自定义 我的最终目标是删除搜索栏。 多谢各位 为您

我正在用WidgetKit、SwiftUI等为iOS中的应用程序构建一个小部件。 我已经创建了一个自定义意图和自定义对象以在应用程序中使用,当点击
“编辑小部件”
时,我从
UserDefaults
中获取一个自定义项目列表

问题是,我是否可以自定义iOS向我显示的第二个视图的外观以及项目列表等

这就是我所说的观点:

环顾四周,我发现: 这给了我很多很好的暗示,但对我想要达到的目标却一无所知

在视频中,他们展示了以下内容:

这将是相同的视图,但有一些自定义

我的最终目标是删除搜索栏。
多谢各位

为您的
意图创建
INObjectCollection
项时,您可以设置:

  • 标识符
  • 显示
  • 发音提示
  • 副标题
  • 图像
以下是如何将
subtitle
image
添加到
inoobjectcollection
项的示例:

class IntentHandler: INExtension, TestIntentHandling {
    func provideItemsOptionsCollection(for intent: TestIntent, with completion: @escaping (INObjectCollection<Item>?, Error?) -> Void) {
        let items: [Item] = [
            .init(
                identifier: "1",
                display: "SoupPay Credit",
                subtitle: "$248.20",
                image: nil
            ),
            .init(
                identifier: "2",
                display: "SoupPay Titanium Credit",
                subtitle: "$602.01",
                image: nil
            ),
            .init(
                identifier: "3",
                display: "Apple Card",
                subtitle: "$17.28",
                image: nil
            ),
            .init(
                identifier: "4",
                display: "Other Card",
                subtitle: "$123.32",
                image: INImage(url: URL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Stack_Overflow_icon.svg/200px-Stack_Overflow_icon.svg.png")!)!
            ),
        ]
        completion(INObjectCollection(items: items), nil)
    }
}
class IntentHandler:不张力、测试{
func provideItemsOptionsCollection(用于意图:测试内容,完成:@escaping(INObjectCollection?,Error?)->Void){
出租项目:[项目]=[
.init(
标识符:“1”,
显示:“SoupPay信用”,
副标题:“248.20美元”,
图片:无
),
.init(
标识符:“2”,
显示:“SoupPay钛信用”,
副标题:“602.01美元”,
图片:无
),
.init(
标识符:“3”,
显示:“苹果卡”,
副标题:“$17.28”,
图片:无
),
.init(
标识符:“4”,
显示:“其他卡”,
副标题:“$123.32”,
图像:INImage(url:url(字符串):https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Stack_Overflow_icon.svg/200px-Stack_Overflow_icon.svg.png")!)!
),
]
完成(INObjectCollection(项:项),无)
}
}

当您为您的
意图创建
inoobjectcollection
项目时,您可以设置:

  • 标识符
  • 显示
  • 发音提示
  • 副标题
  • 图像
以下是如何将
subtitle
image
添加到
inoobjectcollection
项的示例:

class IntentHandler: INExtension, TestIntentHandling {
    func provideItemsOptionsCollection(for intent: TestIntent, with completion: @escaping (INObjectCollection<Item>?, Error?) -> Void) {
        let items: [Item] = [
            .init(
                identifier: "1",
                display: "SoupPay Credit",
                subtitle: "$248.20",
                image: nil
            ),
            .init(
                identifier: "2",
                display: "SoupPay Titanium Credit",
                subtitle: "$602.01",
                image: nil
            ),
            .init(
                identifier: "3",
                display: "Apple Card",
                subtitle: "$17.28",
                image: nil
            ),
            .init(
                identifier: "4",
                display: "Other Card",
                subtitle: "$123.32",
                image: INImage(url: URL(string: "https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Stack_Overflow_icon.svg/200px-Stack_Overflow_icon.svg.png")!)!
            ),
        ]
        completion(INObjectCollection(items: items), nil)
    }
}
class IntentHandler:不张力、测试{
func provideItemsOptionsCollection(用于意图:测试内容,完成:@escaping(INObjectCollection?,Error?)->Void){
出租项目:[项目]=[
.init(
标识符:“1”,
显示:“SoupPay信用”,
副标题:“248.20美元”,
图片:无
),
.init(
标识符:“2”,
显示:“SoupPay钛信用”,
副标题:“602.01美元”,
图片:无
),
.init(
标识符:“3”,
显示:“苹果卡”,
副标题:“$17.28”,
图片:无
),
.init(
标识符:“4”,
显示:“其他卡”,
副标题:“$123.32”,
图像:INImage(url:url(字符串):https://upload.wikimedia.org/wikipedia/commons/thumb/e/ef/Stack_Overflow_icon.svg/200px-Stack_Overflow_icon.svg.png")!)!
),
]
完成(INObjectCollection(项:项),无)
}
}

谢谢您的回答!完全错过了。你也知道如何自定义颜色吗?@MajinDageta我没有试过,但我假设你需要设置小部件的
accentColor
(可以在
Assets.xcsets
中更改)。谢谢你的回答!完全错过了。您也知道如何自定义颜色吗?@MajinDageta我没有尝试过,但我假设您需要设置小部件的
accentColor
(可以在
Assets.xcsets
中更改)。