Autolayout - 视图控制器框架不正确
Autolayout - view controller frame incorrect
我想弄清楚为什么我的视图控制器的框架(从 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)
我可以提供一个孤立的例子来更清楚地说明问题。想法?
试试这个。
self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
那是你忘记给它加框了!你是说:
self.view.addSubview(testVC.view)
但是您既没有应用 frame
也没有附加任何约束,因此不会调整视图的大小。 您现在是家长了。调整子视图的大小取决于你。如果你不这样做,它的大小就是故事板中的大小——600 x 600,就像你说的那样。它不会被魔法调整大小。 你必须这样做。
我想弄清楚为什么我的视图控制器的框架(从 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)
我可以提供一个孤立的例子来更清楚地说明问题。想法?
试试这个。
self.addChildViewController(testVC)
testVC.view.frame=self.view.bounds//or set by CGRectMake()
testVC.willMoveToParentViewController(self)
self.view.addSubview(testVC.view)
testVC.didMoveToParentViewController(self)
那是你忘记给它加框了!你是说:
self.view.addSubview(testVC.view)
但是您既没有应用 frame
也没有附加任何约束,因此不会调整视图的大小。 您现在是家长了。调整子视图的大小取决于你。如果你不这样做,它的大小就是故事板中的大小——600 x 600,就像你说的那样。它不会被魔法调整大小。 你必须这样做。