子视图控制器视图不适合 iPhone X 上的父视图

Posted

技术标签:

【中文标题】子视图控制器视图不适合 iPhone X 上的父视图【英文标题】:Child view controllers view doesn't fit parent's view on iPhone X 【发布时间】:2018-10-16 12:02:07 【问题描述】:

我正在使用子视图控制器来呈现场景中的各种状态。我有:每个状态的 LoadingViewController、FailureViewController 和 TableViewController。

extension UIViewController 
    func add(_ child: UIViewController) 
        addChild(child)
        view.addSubview(child.view)
        child.didMove(toParent: self)
    

    func remove() 
        guard parent != nil else 
            return
        
        willMove(toParent: nil)
        removeFromParent()
        view.removeFromSuperview()
    

我的问题是,子控制器视图不完全适合 iPhone X 上的父视图(其他设备很好)。谢谢

【问题讨论】:

【参考方案1】:

你为什么不尝试向子视图添加显式框架,即

func add(_ child: UIViewController) 
    addChild(child)
    child.view.frame = (your expected frame)
    view.addSubview(child.view)
    child.didMove(toParent: self)

【讨论】:

child.view.frame = view.bounds 按预期工作。感觉好傻,谢谢

以上是关于子视图控制器视图不适合 iPhone X 上的父视图的主要内容,如果未能解决你的问题,请参考以下文章

UICollectionView 不适合某些 Apple 设备上的视图控制器

应用程序不适合 iPhone 4

iPhone X 上的导航栏不覆盖状态栏

将子视图控制器链接到情节提要中的父视图控制器

如何避免 iPhone X 上的视图剪辑

iPhone UIView:是不是可以仅在子视图上启用用户交互?