Xcode 11 - 在催化剂中禁用调整大小模式 swift
Xcode 11 - Disable resize mode in catalyst swift
我们正在 使用 Catalyst 将基于 Swift 的 iOS 应用程序转换为 Mac 兼容在 Xcode 11.
当用户 resize app window 时,我们在 UI 中遇到问题。那么我们可以 禁用调整大小模式 并为应用 window 提供修复框架吗?
Beta 5 添加了 sizeRestrictions
属性 到 UIWindowScene。
如果将 sizeRestrictions.maximumSize
和 sizeRestrictions.minimumSize
设置为相同的值,则 window 将无法调整大小:
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 640, height: 480)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 640, height: 480)
添加此代码最简单的地方可能是 scene(_:willConnectTo:options:)
在您的场景委托中。传入的scene
对象是一个UIWindowScene
,所以直接cast一下然后设置sizeRestrictions
.
注意:sizeRestrictions
仅在 iOS 10.15 Beta 5 中可用。此代码将在较旧的 Beta 中崩溃。
您可以在 application:didFinishLaunchingWithOptions
方法中调用它:
UIApplication.shared.connectedScenes.compactMap { [=10=] as? UIWindowScene }.forEach { windowScene in
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 640)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 640)
}
我们正在 使用 Catalyst 将基于 Swift 的 iOS 应用程序转换为 Mac 兼容在 Xcode 11.
当用户 resize app window 时,我们在 UI 中遇到问题。那么我们可以 禁用调整大小模式 并为应用 window 提供修复框架吗?
Beta 5 添加了 sizeRestrictions
属性 到 UIWindowScene。
如果将 sizeRestrictions.maximumSize
和 sizeRestrictions.minimumSize
设置为相同的值,则 window 将无法调整大小:
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 640, height: 480)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 640, height: 480)
添加此代码最简单的地方可能是 scene(_:willConnectTo:options:)
在您的场景委托中。传入的scene
对象是一个UIWindowScene
,所以直接cast一下然后设置sizeRestrictions
.
注意:sizeRestrictions
仅在 iOS 10.15 Beta 5 中可用。此代码将在较旧的 Beta 中崩溃。
您可以在 application:didFinishLaunchingWithOptions
方法中调用它:
UIApplication.shared.connectedScenes.compactMap { [=10=] as? UIWindowScene }.forEach { windowScene in
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 640)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 640)
}