如何快速管理嵌套的视图控制器视图大小?

Posted

技术标签:

【中文标题】如何快速管理嵌套的视图控制器视图大小?【英文标题】:How to manage nested viewcontrooler view size in swift? 【发布时间】:2016-03-06 07:46:10 【问题描述】:

我有一个父视图控制器,想在其中构建一个嵌套视图控制器。父视图控制器在屏幕中间有一个 contentView(a UIView)。单击按钮时,我希望嵌套视图控制器出现在 contentView 位置。但是当我单击按钮时,嵌套视图将显示在 contentView 之外。下面是我正在使用的代码。 currentViewController 是嵌套视图。 contentView 是父视图。我发现有趣的是,如果我使用 UITableViewController 作为嵌套控制器,一切正常。嵌套视图正确地位于其父视图内。当我使用 UIViewController 时它失败了。我不知道出了什么问题。

self.currentViewController = self.storyboard?.instantiateViewControllerWithIdentifier("NestedViewController")
self.addChildViewController(self.currentViewController!)
        self.currentViewController?.view.translatesAutoresizingMaskIntoConstraints = false
        self.currentViewController?.view.frame = self.contentView.bounds
        self.contentView.addSubview((self.currentViewController?.view)!)
        self.currentViewController?.didMoveToParentViewController(self)
        self.currentViewController?.view.layoutIfNeeded()

【问题讨论】:

为什么在不使用约束的情况下会有这条线self.currentViewController?.view.translatesAutoresizingMaskIntoConstraints = false 你是对的。删除此代码后,它工作正常。 太好了,让我添加为 aswer 【参考方案1】:

你应该删除该行

self.currentViewController?.view.translatesAutoresizingMaskIntoConstraints = false

因为当你想使用自动布局约束时使用它。

【讨论】:

以上是关于如何快速管理嵌套的视图控制器视图大小?的主要内容,如果未能解决你的问题,请参考以下文章

如何控制嵌套在另一个堆栈视图中的 UIStackViews 的相对宽度?

如何快速将需求视图控制器推送到导航控制器

如何快速管理作为子视图的表视图

如何快速调整表格视图标题的高度?

如何在 SwiftUI 的视图控制器中实现数据绑定?

您如何管理 iOS 项目中的视图标签? [关闭]