如何在 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 的大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 SwiftUI 中更改滚动视图的滚动方向?

如何在 SwiftUI 中使用 UIButton 更改 @State var

如何指定或更改按钮 SwiftUI 的可点击区域

如何在 SwiftUI 应用生命周期中更改状态栏样式?

如何更改 SwiftUI 列表中分隔符的颜色?

SwiftUI - 如何更改视图的层次位置?