标签: widgetkit

iOS 14 小部件可用内存

在互联网上搜索我发现在小部件的旧版本中存在以下内存限制:

对用户交互做出适当的响应。表现良好(尤其是 iOS 小部件必须明智地使用内存,否则系统可能会终止它们)。” 小部件的内存限制为 16 MB,因此请保持简单并确保测试您的小部件是否存在内存泄漏

我想了解新版本iOS 14可能使用的内存是否相同或已更改。

我在文档中找不到任何内容。

我想在 中编写一个小部件Swift ui,但首先我想了解是否有任何限制。

谁能给我一些澄清?

ios swift widgetkit swiftui ios14

2
推荐指数
1
解决办法
620
查看次数

如何在应用程序中检索小部件大小以根据设备进行预览?

我目前正在制作一个基于 SwiftUI 的仅小部件应用程序,它允许用户显示某些类型的信息,如时间、日期等。为了使我的应用程序正常运行,我想在应用程序视图中预览小部件,也允许用户进行设置。

现在一切正常,我可以在我的应用程序中选择一个小部件并进行设置,以便小部件也更新。但是,我遇到了一个问题,经过一些研究,我似乎找不到一种方法可以让您根据所使用的设备获取小部件大小。

我尝试使用UIScreen.main.bounds.size但小部件大小和设备大小之间的纵横比不一样。

我想做的是让我的小部件预览适应设备实际使用的小部件尺寸。(换句话说,根据您使用的设备检索小部件大小)

是否有任何解决方案可以动态执行此操作,或者我是否需要为每个设备创建视图?提前致谢。

ios swift widgetkit swiftui

2
推荐指数
2
解决办法
1618
查看次数

SwiftUI iOS14 Widget - 使用相同的 WidgetFamily 创建多布局

当我从主屏幕添加小部件时,我可以看到 Apple 创建的时钟应用程序有两个小WidgetFamily布局。

如何在时钟应用程序中制作两个小部件?

我看到我只能为每个WidgetFamily.

widget swift widgetkit swiftui ios14

2
推荐指数
1
解决办法
596
查看次数

IntentHandler 无法读取 UserDefaults,但 Timeline 可以

当用户更改小部件的配置时,我想读取 UserDefaults,因此我创建了一个应用程序组并将功能添加到我的主应用程序、小部件扩展和 Intent 扩展中。

\n

我可以在我的应用程序和小部件扩展之间很好地读写,但是 UserDefaults 总是nil在 IntentHandler.swift 中返回,这可能是什么原因导致的?

\n
// called from TimelineProvider\nfunc example() -> String {\n\nlet sharedDefaults = UserDefaults.init(suiteName: "group.myname")\n  let value = sharedDefaults!.value(forKey: "myKey") as! String\n// value == \xe2\x80\x9cHi this works!\xe2\x80\x9d\n}\n
Run Code Online (Sandbox Code Playgroud)\n

但是当我example()从 IntentHandler 调用时,值是nil. (它崩溃了)

\n

swift widgetkit userdefaults

2
推荐指数
1
解决办法
629
查看次数

外观更改时更新 Widget

light我需要知道你们中是否有人知道 SwiftUI 中的一个系统,当外观从模式切换到模式时更新 Widget,dark反之亦然。

我可以更改文本和图像,但我使用一种方法来显示地图的屏幕截图,并且每次外观发生变化时我都应该运行它以获得正确的地图颜色。

swift widgetkit swiftui ios14

2
推荐指数
1
解决办法
1077
查看次数

isPlaceholder 修饰符不可用,并且在小部件套件 + SwiftUI 中不起作用

我正在跟踪 Fromm wwdc 2020 上的小部件代码,在第一部分中他们提到使用新的占位符 api 和.isPlacholder. 所以我尝试在我的小部件中实现它,如下所示:

struct PlaceholderView: View {
    var body: some View {
        RandomWidgetView(book: testBook)
            .isPlaceholder(true)
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误Value of type 'RandomWidgetView' has no member 'isPlaceholder'。谷歌搜索后我发现了这个:

struct PlaceholderView: View {
    var body: some View {
        RandomWidgetView(book: testBook)
            .redacted(reason: .placeholder)
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这并没有创建正确的占位符,而是完全删除了内部的视图。

我是否缺少导入或者自 wwdc 以来它已更改?如何创建正确的占位符?

wwdc swift widgetkit swiftui

2
推荐指数
1
解决办法
953
查看次数

限制 WidgetKit 时间线条目吗?

我正在创建一个处理基于时间表的小部件的应用程序。因此,它应该不断更新,但我会提前知道小部件的外观。我们一次创建的 WigetKit 时间线条目数量是否有限制?如果我想创建一个包含 100 个条目的时间线,它会让我没有任何限制吗?我想创建尽可能多的未来条目,但我不想在用户进行更改时减慢更新小部件的速度。

widgetkit

2
推荐指数
1
解决办法
944
查看次数

How to share Core Data with Widget?

I want to share Core Data with the Widget. I guess I'll need to create App Group (I know how to do this). But how do I then share the Core Data database with the Widget?

If I wanna use Core Data in my app, I always just simply create a new Xcode project and check "Use Core Data", and I get this code (Persistence.swift - below), which hooks me up to a database.

How can I modify it, …

xcode core-data swift ios-app-group widgetkit

2
推荐指数
1
解决办法
832
查看次数

如何在 iOS 17 模拟器中启用待机模式?

我正在尝试构建一个支持待机模式的小部件。是否可以在 iOS 模拟器中启用待机模式?

在设备上,“设置”中有一个用于待机模式的菜单。但模拟器设置中不存在该菜单

ios ios-simulator widgetkit ios17

2
推荐指数
1
解决办法
846
查看次数

如何在小部件扩展中添加 5 个以上的小部件?WidgetBundle 的小部件的最大数量不能超过 5

好像WidgetBundle有最大数量限制,如果超过5个就会报编译错误:Extra argument in call.

但是我没有在任何文档中看到过这样的描述,也没有其他开发者提到过这个问题。

有没有人有想法?

@main
struct WidgetsBundle: WidgetBundle {
    @WidgetBundleBuilder
    var body: some Widget {
        Widget1()
        Widget2()
        Widget3()
        Widget4()
        Widget5()
        Widget6() // Extra argument in call
    }
}
Run Code Online (Sandbox Code Playgroud)

ios widgetkit swiftui

1
推荐指数
1
解决办法
328
查看次数