如何在 SwiftUI 中更改 modal 或 sheet 的大小?
Posted
技术标签:
【中文标题】如何在 SwiftUI 中更改 modal 或 sheet 的大小?【英文标题】:How to change the size of modal or sheet in SwiftUI? 【发布时间】:2021-08-06 03:17:44 【问题描述】:就像图片中的那些一样。我注意到 AirDrop 选项在 iPhone 上显示为全屏工作表,但在 iPad 上并非如此(如您所见)。
我正在创建一个带有登录表单的应用,这种尺寸个性化将有助于优化设备的尺寸,因为大部分空间都没有使用。
有没有办法改变这些组件的大小?
【问题讨论】:
请添加一个最小示例,演示如何在一些演示“ContentView”中显示警报和工作表。确保您只包含相关的 UI 作为示例,而不是您的登录信息。 说到“内置”,就好像ios15一样只有一半和完整。您还需要为此使用 UIKit。任何其他尺寸,您必须自己创建它。 ***.com/questions/56700752/swiftui-half-modal/… 【参考方案1】:根据您的描述,我并没有真正理解您想要实现什么,但是这个枚举将帮助您确定当前正在运行的设备。您可以围绕一个简单的if else
语句构建您想要呈现的逻辑:
if DeviceTypes.isiPad
// logic for all iPads
else
// logic for other devices
这里是枚举:
enum DeviceTypes
enum ScreenSize
static let width = UIScreen.main.bounds.size.width
static let height = UIScreen.main.bounds.size.height
static let maxLength = max(ScreenSize.width, ScreenSize.height)
static let idiom = UIDevice.current.userInterfaceIdiom
static let isiPad = idiom == .pad && ScreenSize.maxLength >= 1024.0
【讨论】:
不是我打算做的,但仍然很有帮助。非常感谢:)以上是关于如何在 SwiftUI 中更改 modal 或 sheet 的大小?的主要内容,如果未能解决你的问题,请参考以下文章