热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何计算不同方向的iOS11大小?

如何解决《如何计算不同方向的iOS11大小?》经验,为你挑选了1个好方法。

我使用水平滚动和自定义布局计算取决于UICollectionView的安全区域的itemSize.

图片

但对于iPhone X安全区域,不同的方向有不同的大小.我的问题是如何在viewWillTransition函数中计算横向方向的安全区域大小?或者如果没有这个计算怎么办?



1> jonaszmclare..:

编辑

要在不创建任何其他视图的情况下获得安全区域大小,请使用:

view.safeAreaLayoutGuide.layoutFrame.size

如果你想使用viewWillTransition方法,你可以使用这个:

override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
    super.viewWillTransition(to: size, with: coordinator)

    // Before rotation
    print(view.safeAreaLayoutGuide.layoutFrame.size)

    coordinator.animate(alongsideTransition: { (context) in
        // During rotation
    }) { (context) in
        // After rotation
        print(self.view.safeAreaLayoutGuide.layoutFrame.size)
    }
}

在完成块中,您将获得所需的大小,但请注意,此代码将在轮换调用.

原始答案

使用其他UIView的解决方案:

我所做的是创建一个UIView并用常量0固定到安全区域指南,以便它始终匹配安全区域的大小:

在此输入图像描述

我创建了一个@IBOutlet的是UIViewviewDidLayoutSubviews()检查大小:

override func viewDidLayoutSubviews() {
    super.viewDidLayoutSubviews()

    print(containerView.frame.size)
}

旋转后,我也得到了UIView的更新大小.


推荐阅读
author-avatar
Katty叮当_586
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有