繁体   English   中英

iOS8,如何知道UIView自动旋转完成的时间?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM