[英]iOS8, how to know when UIView autorotation is complete?
我正在使用大小类和自动布局的故事板项目。 但是,代码中有几个实例,我在屏幕上添加“旧学校”菜单和组件。 正确绘制这些组件,直到视图自动旋转。
我正在尝试修复在iOS8中以编程方式添加到UIView的控件的自动旋转问题。 如何确定UIView自动旋转何时完成且视图有新边界?
在旋转完成之前调用此方法,并且视图仍具有旧大小,并且子视图无法正确地重绘自身。 我没有看到didTransition
任何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];
}
该方法称为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! ...
})
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.