【问题标题】:How to use autoresize on 2 UIViewControllers? [closed]如何在 2 个 UIViewControllers 上使用自动调整大小? [关闭]
【发布时间】:2013-04-04 10:24:27
【问题描述】:

我有 2 个UIViewControllers:

UIViewControllers1
UIViewControllers2

UIViewControllers2.view 作为子视图添加到UIViewControllers1.view

问题是UIViewControllers2.view 不想在UIViewControllers1.view 调整大小时自动调整大小(UIViewControllers1 setFrame:frame)。

[UIViewControllers1.view setAutoresizesSubViews:YES]
[UIViewControllers1.view setAutoResizeMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)]
[UIViewControllers1.view addSubview:UIViewControllers2.view];

如何解决?

【问题讨论】:

  • UIViewControllers2.view setAutoresizeSubViews:YES 你的意思是UIViewControllers1.view - 这是在调整其自身大小时应该调整其子视图大小的视图。
  • 好的,所以,这段代码是假的。没有setAutoresizeSubViews:,是setAutoresizesSubviews。没有setAutoResizeMask:。不要显示假代码。如果您需要帮助,请粘贴您的真实代码。你必须展示你实际在做什么,而不是编造一些虚构的东西。
  • 谢谢,代码已修复。真正的代码解释问题比较复杂。

标签: iphone ios uiview uiviewcontroller


【解决方案1】:

嗯,部分问题在于这是非法的:

[UIViewControllers1.view addSubview:UIViewControllers2.view];

你绝不能随意地将一个视图控制器的视图添加到另一个视图控制器的视图中。只有一种方法可以在内置的父子结构之外为您执行此操作(UINavigationController、UITabBafController、UIPageViewController),那就是当您创建 自己的 精心定制的父子结构 - 而你没有这样做。我的书中描述了这样做所需的架构:

http://www.apeth.com/iOSBook/ch19.html#_container_view_controllers

需要明确的是,将视图添加到另一个视图没有任何问题!让视图来来去去的能力对于 iOS 来说是至关重要的。问题是你不能将视图控制器的视图添加到另一个视图中,除非在父子视图控制器架构下,内置或自定义。

【讨论】:

  • 我只是使用第三方组件,它有UIViewController。那么,我应该从组件中删除它吗?但这太难了。是否可以强制自动调整大小工作?
猜你喜欢
  • 1970-01-01
  • 2015-10-08
  • 2016-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-07
  • 1970-01-01
  • 2015-10-22
相关资源
最近更新 更多