我如何在我的应用程序Swift中创建一个带有小部件的视图

b0zn9rqh  于 2023-06-28  发布在  Swift
关注(0)|答案(1)|浏览(133)

我目前正在学习如何制作widget。我在我的应用程序中添加了widget扩展,xcode给了我一些基本的widget。问题是,我想让用户不仅在主屏幕上看到我的小部件,而且在应用程序内,在一些自定义视图。我该怎么做?我是SwiftUI的新手,所以任何帮助都将不胜感激)[![在此处输入图像描述][1]][1]
P.s这就是我正在努力做的事情,但仅在我的应用程序中)[1]:https://i.stack.imgur.com/AbnlQ.png

0aydgbwb

0aydgbwb1#

如果你想从应用程序内部真实的反映小部件的变化,你需要在小部件和应用程序之间共享这些变化。为此,您可以使用@AppStorage属性 Package 器。

  1. @AppStorage("fontColor", store: UserDefaults(suiteName: "group.com.authorName.myAppName.shared")) var fontColor: Color = Color.white

另外,在Xcode中转到您的应用目标,单击Signing & Capabilities,然后单击左上角的+ Capability。添加新的同名App Group,即group.com.authorName.myAppName.shared。对小部件扩展目标也执行相同的操作。
现在,当您在应用程序中处理小部件视图时,如果该视图中有任何文本,请为其分配fontColor属性。
最后一步,当你进入后台,那么你必须重新加载所有小部件的时间线.为此,在sceneDelegate中,您可以像下面这样处理它:

  1. func sceneDidEnterBackground(_ scene: UIScene) {
  2. WidgetCenter.shared.reloadAllTimelines()
  3. }

这样,你就可以看到你在应用程序中执行的小部件的真实的更改。希望能帮上忙。

相关问题