【问题标题】:How to change the size of modal or sheet in SwiftUI?如何在 SwiftUI 中更改 modal 或 sheet 的大小?
【发布时间】:2021-08-06 03:17:44
【问题描述】:

如何在 SwiftUI 中更改 modal 或 sheet 的大小?就像图片中的那些一样。我注意到 AirDrop 选项在 iPhone 上显示为全屏工作表,但在 iPad 上并非如此(如您所见)。

我正在创建一个带有登录表单的应用,这种尺寸个性化将有助于优化设备的尺寸,因为大部分空间都没有使用。

有没有办法改变这些组件的大小?

【问题讨论】:

  • 请添加一个最小示例,演示如何在一些演示“ContentView”中显示警报和工作表。确保您只包含相关的 UI 作为示例,而不是您的登录信息。
  • 说到“内置”,就好像iOS15一样只有一半和完整。您还需要为此使用 UIKit。任何其他尺寸,您必须自己创建它。 stackoverflow.com/questions/56700752/swiftui-half-modal/…

标签: swift swiftui


【解决方案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
}

【讨论】:

  • 不是我打算做的,但仍然很有帮助。非常感谢:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-22
  • 1970-01-01
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多