【问题标题】:Autolayout - view controller frame incorrect自动布局 - 视图控制器框架不正确
【发布时间】:2015-08-01 01:04:46
【问题描述】:

我试图弄清楚为什么我的视图控制器的框架(从 xib 加载)在通过 presentViewController 呈现时设置正确:

self.presentViewController(testVC, animated: true, completion: nil);

...但在添加为子视图控制器时保持在 (0, 0, 600, 600):

self.addChildViewController(testVC)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
testVC.view.setNeedsLayout(); (makes no difference)

我可以提供一个孤立的示例,更清楚地说明问题。想法?

【问题讨论】:

  • 请提供所有代码以便可以复制?
  • 一个明确的问题,一个明确的答案,但多次否决。我永远不会明白。

标签: ios swift uiviewcontroller autolayout


【解决方案1】:

试试这个。

self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)

【讨论】:

    【解决方案2】:

    那是因为你忘了给它一个框架!你是说:

    self.view.addSubview(testVC.view)
    

    但是您既没有应用frame 也没有附加任何约束,因此不会调整视图大小。 现在是父母。调整子视图的大小取决于。如果你不这样做,它的大小就是它在故事板中的大小——600 x 600,就像你说的那样。它不会被魔法调整大小。 必须这样做。

    【讨论】:

      猜你喜欢
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多