如何解决如何使用WidgetKit中的Link来定义任意区域,而不仅仅是文本链接?
在WWDC 2020的“第2部分中的小部件代码”会话中,the presenter says:
小部件没有动画或自定义交互,但是我们可以从小部件到应用程序进行深层链接。 SystemSmall小部件是一个较大的点击区域,而systemMedium和systemLarge可以使用新的SwiftUI链接API在小部件内创建可点击区域。
这表明我应该能够将窗口小部件的区域指定为可轻触的区域,从而导致应用程序中具有给定的URL。但是Link
API仅带有字符串标题和目标URL-它似乎无法嵌入图像等其他任意视图。
如何使用Link
API将小部件的区域指定为可轻敲,而不仅仅是文本链接?
解决方法
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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。