在WWDC 2020的“第2部分中的小部件代码”会话中,the presenter says:
小部件没有动画或自定义交互,但是我们可以从小部件到应用程序进行深层链接。 SystemSmall小部件是一个较大的点击区域,而systemMedium和systemLarge可以使用新的SwiftUI链接API在小部件内创建可点击区域。
这表明我应该能够将窗口小部件的区域指定为可轻触的区域,从而导致应用程序中具有给定的URL。但是Link
API仅带有字符串标题和目标URL-它似乎无法嵌入图像等其他任意视图。
如何使用Link
API将小部件的区域指定为可轻敲,而不仅仅是文本链接?
答案 0 :(得分:2)
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
。