-1

在 WWDC 2020 的“Widgets Code Also Part 2”会议中,演讲者说

小部件没有动画或自定义交互,但我们可以从小部件深层链接到我们的应用程序。SystemSmall 小部件是一个大的点击区域,而 systemMedium 和 systemLarge 可以使用新的 SwiftUI 链接 API 在小部件内创建可点击区域。

这表明我应该能够将我的小部件区域指定为可点击的区域,这些区域会导致我的应用程序中的给定 URL。但是LinkAPI 只需要一个字符串标题和一个目标 URL——它似乎无法嵌入其他任意视图,如图像。

如何使用LinkAPI 将小部件的区域指定为可点击区域,而不仅仅是文本链接?

4

1 回答 1

3

的类型定义Link实际上struct Link<Label> where Label : View是唯一的约束Label是它符合View协议(尽管名称另有说明)。我首选的初始化程序是init(destination:, label:)这样您可以将每个视图嵌入到视图构建器中,如下所示:

Link(destination: URL(string: "some://dest")!) {
  HStack {
    Text("I'm part of the tappable area")
    Text("Me too")
  }
}

您实际上可以在 Apple 的 Emoji Rangers 项目中看到这一点(查看AllCharactersView.swift.

于 2020-11-06T16:28:51.833 回答