ios - 如何在应用程序中检索小部件大小以根据设备进行预览?
问题描述
我目前正在制作一个基于 SwiftUI 的仅小部件应用程序,它允许用户显示某些类型的信息,如时间、日期等。为了使我的应用程序正常运行,我还想在应用程序视图中预览小部件允许用户设置它。
现在一切正常,我可以在我的应用程序中选择一个小部件并进行设置,以便小部件也更新。但是,我遇到了一个问题,经过一些研究,我似乎找不到一种方法可以让您根据所使用的设备获取小部件的大小。
我尝试使用UIScreen.main.bounds.size
,但小部件尺寸和设备尺寸之间的纵横比不一样。
我想做的是让我的小部件预览适应设备实际使用的小部件尺寸。(换句话说,根据您使用的设备检索小部件大小)
是否有任何解决方案可以动态执行,或者我是否需要为每个设备创建视图?提前致谢。
解决方案
您可以将 UIScreen.main.bounds.size 映射到 Apple 文档中的小部件尺寸: https ://developer.apple.com/design/human-interface-guidelines/widgets/overview/design/
小部件的示例:
switch UIScreen.main.bounds.size {
case CGSize(width: 428, height: 926): return 170
case CGSize(width: 414, height: 896): return 169
case CGSize(width: 414, height: 736): return 159
case CGSize(width: 390, height: 844): return 158
case CGSize(width: 375, height: 812): return 155
case CGSize(width: 375, height: 667): return 148
case CGSize(width: 360, height: 780): return 155
case CGSize(width: 320, height: 568): return 141
default: return 155
}
推荐阅读
- php - 正确获取和删除帖子
- laravel - 类 Frontend\Auth\LoginController 不存在
- reactjs - 使用 react-router 重定向到不同的 url
- powershell - Powershell中字符串内的Concat变量
- git - 如何在不更改上一个分支的情况下创建新分支?
- database - MongoDB 全集合扫描的安全性如何?
- javascript - 递归角度 div 模板
- r - 基于正则表达式模式在列表元素之间连接
- node.js - React Socket.IO-Client 与 NodeJS (express) WebSockets 不兼容?
- mysql - 在 where 子句中限制结果集会提高 group by 和 having 的性能吗?