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
    
posted @ 2022-05-07 18:07  CH520  阅读(188)  评论(0编辑  收藏  举报