在互联网上搜索我发现在小部件的旧版本中存在以下内存限制:
对用户交互做出适当的响应。表现良好(尤其是 iOS 小部件必须明智地使用内存,否则系统可能会终止它们)。” 小部件的内存限制为 16 MB,因此请保持简单并确保测试您的小部件是否存在内存泄漏
我想了解新版本iOS 14可能使用的内存是否相同或已更改。
我在文档中找不到任何内容。
我想在 中编写一个小部件Swift ui,但首先我想了解是否有任何限制。
谁能给我一些澄清?
我目前正在制作一个基于 SwiftUI 的仅小部件应用程序,它允许用户显示某些类型的信息,如时间、日期等。为了使我的应用程序正常运行,我想在应用程序视图中预览小部件,也允许用户进行设置。
现在一切正常,我可以在我的应用程序中选择一个小部件并进行设置,以便小部件也更新。但是,我遇到了一个问题,经过一些研究,我似乎找不到一种方法可以让您根据所使用的设备获取小部件大小。
我尝试使用UIScreen.main.bounds.size但小部件大小和设备大小之间的纵横比不一样。
我想做的是让我的小部件预览适应设备实际使用的小部件尺寸。(换句话说,根据您使用的设备检索小部件大小)
是否有任何解决方案可以动态执行此操作,或者我是否需要为每个设备创建视图?提前致谢。
当我从主屏幕添加小部件时,我可以看到 Apple 创建的时钟应用程序有两个小WidgetFamily布局。
如何在时钟应用程序中制作两个小部件?
我看到我只能为每个WidgetFamily.
当用户更改小部件的配置时,我想读取 UserDefaults,因此我创建了一个应用程序组并将功能添加到我的主应用程序、小部件扩展和 Intent 扩展中。
\n我可以在我的应用程序和小部件扩展之间很好地读写,但是 UserDefaults 总是nil在 IntentHandler.swift 中返回,这可能是什么原因导致的?
// 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}\nRun Code Online (Sandbox Code Playgroud)\n但是当我example()从 IntentHandler 调用时,值是nil. (它崩溃了)
light我需要知道你们中是否有人知道 SwiftUI 中的一个系统,当外观从模式切换到模式时更新 Widget,dark反之亦然。
我可以更改文本和图像,但我使用一种方法来显示地图的屏幕截图,并且每次外观发生变化时我都应该运行它以获得正确的地图颜色。
我正在跟踪 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 以来它已更改?如何创建正确的占位符?
我正在创建一个处理基于时间表的小部件的应用程序。因此,它应该不断更新,但我会提前知道小部件的外观。我们一次创建的 WigetKit 时间线条目数量是否有限制?如果我想创建一个包含 100 个条目的时间线,它会让我没有任何限制吗?我想创建尽可能多的未来条目,但我不想在用户进行更改时减慢更新小部件的速度。
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, …
我正在尝试构建一个支持待机模式的小部件。是否可以在 iOS 模拟器中启用待机模式?
在设备上,“设置”中有一个用于待机模式的菜单。但模拟器设置中不存在该菜单
好像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)