Apple開發_限制平板應用執行在mac上視窗的尺寸
阿新 • • 發佈:2022-05-07
1、前言
-
1.1 移動端
- app視窗(window)的尺寸始終是固定不變的,在佈局時,我們可以利用這一點對視窗內的view進行自動佈局和定位。
-
1.2 mac端
- app視窗的尺寸可以用滑鼠拖拽邊緣來改變。將iOS app移植到Mac上可以用同樣的方式自動佈局,但是需要注意控制元件在視窗改變後的相對位置。
- 若手動拖拽調整視窗尺寸,下次再啟動app,視窗會記錄上次執行時最後一次調整的視窗尺寸大小。
- 有時候希望限制視窗的大小,以達到某種目的。
2、通過程式碼設定視窗尺寸
-
2.1 啟動時就限制視窗尺寸
@implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 建立視窗 self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 設定根控制器 self.window.rootViewController = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc] init]]; // 限制視窗在mac上的顯示大小 UIWindowScene *windowScene = self.window.windowScene; // 設定視窗標題 windowScene.title = @"mac上顯示"; // 設定視窗最大尺寸 windowScene.sizeRestrictions.maximumSize = CGSizeMake(500, 300); // 設定視窗最小尺寸 windowScene.sizeRestrictions.minimumSize = CGSizeMake(300, 100); [self.window makeKeyAndVisible]; return YES; } @end
-
2.2 某個控制器的視窗尺寸
- 注意⚠️:這裡是對於整個應用進行修改的,回到其他控制器需要自行改回。
@implementation GC_Controller - (void)viewDidLoad { [super viewDidLoad]; self.title = @"GC_Controller"; self.view.backgroundColor = [UIColor purpleColor]; UIWindowScene *windowScene = (UIWindowScene *)[UIApplication sharedApplication].connectedScenes.allObjects.firstObject; // 限制視窗的最小尺寸 windowScene.sizeRestrictions.minimumSize = CGSizeMake(500, 5000); } @end