提升iPad体验之 --- iPad适配分屏

适配分屏模式, 是提升iPad体验利器之一.
首先要了解这个系统类 UITraitCollection
顾名思义 特征集. 它封装了几乎所有当前window的特性.

我们需要先了解 SizeClass 中的 horizontalSizeClass 和 vericalSizeClass, 他们分别封装了所有设备的长宽SizeClass.
而这里又分为两种类型. RegularCompact.
常规状态和压缩状态. 入下图所示. 不同的长宽都对应不同的格式.

image

既然是分屏, 分屏就代表了多应用. 那么多应用的长宽, 也可以通过SizeClass表示. 如下图所示.



经过观察后发现, 原来我们只要通过判断水平方向的SizeClass就可以适配所有情况了!!!

  • 通过监听系统回调, 通知改变界面适配
- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection {
    [super traitCollectionDidChange:previousTraitCollection];
}

  • 获取当前horizontalSizeClass去适配
    UITraitCollection *trait = appDelegate.window.traitCollection;
    switch (trait.horizontalSizeClass) {
        case UIUserInterfaceSizeClassUnspecified:
        case UIUserInterfaceSizeClassCompact: self.currentSplitDisplayMode = SHMDeviceSplitDisplayMode_CompactWidth; break;
        case UIUserInterfaceSizeClassRegular: self.currentSplitDisplayMode = SHMDeviceSplitDisplayMode_RegularWidth; break;
        default: break;
    }

  • 判断当前是否分屏
        if (@available(iOS 13.0, *)) return trait.userInterfaceLevel == UIUserInterfaceLevelElevated ;
        else return (trait.horizontalSizeClass == UIUserInterfaceSizeClassCompact || trait.verticalSizeClass == UIUserInterfaceSizeClassCompact);


摘自

UITraitCollection .
Adopting Multitasking Enhancements on iPad

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容