美文网首页
提升iPad体验之 --- iPad适配分屏

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

作者: TEASON | 来源:发表于2020-03-11 18:53 被阅读0次

    适配分屏模式, 是提升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

    相关文章

      网友评论

          本文标题:提升iPad体验之 --- iPad适配分屏

          本文链接:https://www.haomeiwen.com/subject/mcjhjhtx.html