代码之家  ›  专栏  ›  技术社区  ›  Mustafa

使用iPhone X的自动调整大小掩码迁移项目

  •  3
  • Mustafa  · 技术社区  · 9 年前

    1. 我们可以将所有具有自动调整大小掩码的接口转换为使用自动布局。考虑到视图正在动态添加和调整,这似乎是一项重大工作。

    2 回复  |  直到 9 年前
        1
  •  6
  •   Wesley Filleman    8 年前

    下面是我如何使用XIB文件和自动调整布局的遗留项目解决这个问题的:

    1. 在Interface Builder中,启用XIB的自动布局并打开安全区域。
    2. 在创建的新UIView中,使用自动布局将顶部、前缘、底部和后缘设置为superview安全区域。

    这对我的项目非常有用,可以快速支持许多XIB文件中的安全区域,而无需从自动调整大小更改为自动布局。

        2
  •  3
  •   Srdr    9 年前

    第三种选择是在需要的地方使用自动布局,并将应用程序的其余部分保留为自动调整大小。由于XCode 8,您可以混合自动调整大小和自动布局。对于xib或故事板中的每个视图,您可以选择设置自动调整大小掩码或自动布局约束。对视图使用一种规则会禁用该视图的另一种规则。但是你可以在另一个视图中使用另一种。此链接包含更多信息: http://www.thomashanning.com/xcode-8-mixing-auto-autoresizing-masks/

    如果您选择仅使用自动调整大小遮罩,下面的辅助方法可能会帮助您正确布局视图。

    状态栏高度 提供设备状态栏的高度。 为您提供iPhoneX主页按钮指示器的左下角。

    - (CGFloat) statusBarHeight {
        return UIApplication.sharedApplication.statusBarFrame.size.height;
    }
    
    - (CGFloat) safeAreaBottomMargin {
        if (@available(iOS 11.0, *)) {
            UIWindow *window = UIApplication.sharedApplication.windows.firstObject;
            return window.safeAreaLayoutGuide.owningView.frame.size.height - window.safeAreaLayoutGuide.layoutFrame.size.height - window.safeAreaLayoutGuide.layoutFrame.origin.y;
        } else {
            return 0;
        }
    }
    
    推荐文章