在父视图控制器中嵌入具有动态高度的 UIView控制器



我正在显示一个带有子视图控制器的UIViewController(In NotificationContentExtension)。父控制器只是将子控制器的视图作为子视图添加到其视图中。

子视图都是使用自动布局和约束构建的,当未嵌入视图控制器时,这些约束呈现良好。

目前,父通知的显示大小与父视图控制器的视图配置为位于扩展的 Info.plist 文件中一样大。

如果我在父视图中为子控制器的视图提供高度,则它的渲染与父控制器一样大,但如果我不初始化其框架,它不会呈现子控制器的视图元素。

我正在寻找的是打开与子视图容器的动态高度一样大的控制器。

澄清一下,我相信您要实现的是一个模态"弹出"视图控制器,而不是(以某种方式)比调用它的视图控制器小,类似于警报视图控制器的功能......

转到情节提要并单击具有自定义高度的子视图控制器,然后打开右侧窗格以查看大小检查器。我在这里假设您的模拟大小="自由形式"与您的高度和宽度。这将允许您在情节提要中实际调整视图控制器的大小,但视图控制器将全屏显示。

现在单击属性检查器,然后在第 4 个分组中,选中内容大小"使用首选显式大小"框并键入您的模拟大小。这将允许您的模态视图控制器以您要求的确切大小显示。

要以编程方式执行此操作,请在调用 ViewController 的 准备 segue 实现中尝试此操作:

destinationVC.preferredContentSize = CGSize(宽度: 300.0, 高度: 400.0)

干杯:)

最新更新