首页 > 解决方案 > 如何自动调整 ViewController 根视图的大小以适应其内容?

问题描述

UIViewController在相应的 XIB 文件中创建新的根视图时,可以将其设置为任何固定高度。但是,根视图应该自动适应其内容。如何才能做到这一点?

如何解决?

当然,在大多数情况下,根视图的大小不是由其内容定义的,而是由屏幕、模式视图等定义的。ViewController 显示在其中。

但是,我想将 ViewController 显示为ScrollView另一个 ViewController 中的内容。在这种情况下,ContentViewController应该匹配它的内容,并且 ScrollView 将确保完整的内容是可访问的。

这可以在 IB 中解决而不操纵代码中的约束吗?

标签: iosuiviewuiviewcontrollerios-autolayout

解决方案


经过一些反复试验后,找到了一个可行的解决方案:简单地不要使用根视图:-)

我在 XIB 文件的根级别添加了另一个视图,并将根视图移到其中,使根视图成为新视图的子视图。只要 VCview出口仍然指向根视图(不再处于根级别),它就可以正常工作。

仍然可以访问根视图theViewController.view。由于它没有放置在根级别,因此根据其内容调整大小是没有问题的。

虽然这很好用,但它很hacky。有没有不需要虚拟包装视图的更清洁的解决方案?


推荐阅读