[英]Xcode 11 - Disable resize mode in catalyst swift
我們正在使用 Xcode 11 中的Catalyst將基於 iOS 的應用程序轉換為與 Mac兼容的 Swift。
當用戶調整應用程序 window 的大小時,我們在 UI 中遇到問題。那么我們可以禁用調整大小模式並為應用程序 window 提供修復框架嗎?
Beta 5 向UIWindowScene添加了sizeRestrictions
屬性。
如果將sizeRestrictions.maximumSize
和sizeRestrictions.minimumSize
設置為相同的值,則窗口將無法調整大小:
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 640, height: 480)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 640, height: 480)
添加此代碼最簡單的地方可能是場景委托中的scene(_:willConnectTo:options:)
。 傳入的scene
對象是一個UIWindowScene
,所以只需投射它然后設置sizeRestrictions
。
注意: sizeRestrictions
僅在 iOS 10.15 Beta 5 中可用。此代碼將在較舊的 Beta 版中崩潰。
您可以在application:didFinishLaunchingWithOptions
方法中調用它:
UIApplication.shared.connectedScenes.compactMap { $0 as? UIWindowScene }.forEach { windowScene in
windowScene.sizeRestrictions?.minimumSize = CGSize(width: 480, height: 640)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 480, height: 640)
}
對於 Objective-C 嘗試
#if TARGET_OS_MACCATALYST
for (UIScene* scene in UIApplication.sharedApplication.connectedScenes) {
if ([scene isKindOfClass:[UIWindowScene class]]) {
UIWindowScene* windowScene = (UIWindowScene*) scene;
windowScene.sizeRestrictions.minimumSize = CGSizeMake(480, 640);
}
}
#endif
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.