自动布局 - 视图控制器框架不正确
Posted
技术标签:
【中文标题】自动布局 - 视图控制器框架不正确【英文标题】: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)
我可以提供一个孤立的示例,更清楚地说明问题。想法?
【问题讨论】:
请提供所有代码以便可以复制? 一个明确的问题,一个明确的答案,但多次否决。我永远不会明白。 【参考方案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,就像你说的那样。它不会被魔法调整大小。 你必须这样做。
【讨论】:
以上是关于自动布局 - 视图控制器框架不正确的主要内容,如果未能解决你的问题,请参考以下文章