gpt4 book ai didi

ios - 在 iOS 中,如何在自定义动画期间延迟自动旋转(segue)

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:50:21 30 4
gpt4 key购买 nike

在 iOS(版本 5 很好)中,我有一个自定义动画来翻转和缩放从一个 UIViewController 到另一个 UIViewController 的图像转换,使用:

TCFlipZoomSubviewSegue segue=[[TCFlipZoomSubviewSegue alloc] initWithIdentifier:@"SegueToMenuTable" source:self.iViewController destination:self.mViewController];
[segue perform];

在 perform 方法中我有:

[UIView animateWithDuration:3.75f
delay:0.0f
options:UIViewAnimationOptionAllowAnimatedContent
animations:^{
self.subviewTransformView.layer.transform=transform;
} completion:^(BOOL finished) {
[destination.parentViewController.view bringSubviewToFront:destination.view];
}

一切正常,但如果我在动画期间旋转设备,则会出现各种问题(布局困惑)。我想要的是动画在方向事件发生之前完成——这是 iPhone 中的标准行为——例如尝试在单击收件箱后立即旋转邮件应用程序——它完成幻灯片转换然后旋转。与 Stocks 应用程序等相同。如果我使用标准的推送动画等,就会发生这种情况。但我有自己的动画要做。

那么他们是怎么做到的呢?

如何防止(即延迟或阻止)方向更改,直到我的动画完成?我可以通过在 shouldAutorotateToInterfaceOrientation: 中说 NO 来轻松停止更改:当我正在制作动画时,然后我需要它来做方向。我可以调用 attemptRotationToDeviceOrientation 但肯定有更好的方法 - segue 本身应该能够在不被中断的情况下完成。

最佳答案

我认为您提到的方式可能是您必须采用的方式——即,向 shouldAutorotateToInterfaceOrientation: 返回 NO,然后在动画完成时调用 attemptRotationToDeviceOrientation。如果用户在动画进行过程中尝试旋转,您可能需要设置某种标志,以便您知道在动画结束时是否应该调用 attemptRotationToDeviceOrientation。

关于ios - 在 iOS 中,如何在自定义动画期间延迟自动旋转(segue),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12007418/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com