1. 程式人生 > 其它 >Apple開發_限制平板應用執行在mac上視窗的尺寸

Apple開發_限制平板應用執行在mac上視窗的尺寸

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