我正在使用尺寸类和自动布局来处理故事板项目。但是,代码中有几个实例,我在这里添加了#34;旧学校"屏幕上的菜单和组件。正确绘制这些组件,直到视图自动旋转。
我试图修复在iOS8中以编程方式添加到UIView的控件的自动旋转问题。 如何确定UIView自动旋转何时完成且视图有新边界?
在旋转完成之前调用此方法,并且视图仍具有旧大小,并且子视图无法正确地重绘自身。我没有看到didTransition
-(void)viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
{
//this does not seem to work - uses old size instead of new one
[introductionView setNeedsDisplay];
[super viewWillTransitionToSize:size withTransitionCoordinator:coordinator];
}
答案 0 :(得分:3)
该方法称为viewWillTransitionToSize:withTransitionCoordinator:
。第二个参数是过渡协调员!它告诉你旋转何时结束。
这是我自己的代码中的典型结构(在Swift中,但我确信你可以在心理上翻译):
override func viewWillTransitionToSize(size: CGSize, withTransitionCoordinator coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransitionToSize(size, withTransitionCoordinator: coordinator)
coordinator.animateAlongsideTransition({
_ in
// ...
}, completion: {
_ in
// ... now the transition is over! ...
})
}