Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何更改ViewController之间的切换速度_Objective C_Ios_Segue_Uistoryboard - Fatal编程技术网

Objective c 如何更改ViewController之间的切换速度

Objective c 如何更改ViewController之间的切换速度,objective-c,ios,segue,uistoryboard,Objective C,Ios,Segue,Uistoryboard,可以控制分段速度吗 我已经检查了文档,但是苹果没有给出任何方法 但我更希望能找到一些方法来破解并更改较低级别的代码,以便在慢动作中进行分段下面的代码是自定义分段,您可以在代码中设置过渡的持续时间 - (void)perform { UIViewController *src = (UIViewController *) self.sourceViewController; UIViewController *dst = (UIViewController *) self.des

可以控制分段速度吗

我已经检查了文档,但是苹果没有给出任何方法


但我更希望能找到一些方法来破解并更改较低级别的代码,以便在慢动作中进行分段下面的代码是自定义分段,您可以在代码中设置过渡的持续时间

- (void)perform 
{
    UIViewController *src = (UIViewController *) self.sourceViewController;
    UIViewController *dst = (UIViewController *) self.destinationViewController;
    [UIView transitionFromView:src.view
                        toView:dst.view
                      duration:3.0
                       options:UIViewAnimationOptionTransitionFlipFromLeft
                    completion:NULL];

}
示例项目位于GitHub中:


您可以下载并运行它。我希望这对您有所帮助。

为了防止僵尸创建,我认为最好也使用子视图添加/删除:

- (void)perform
{
    UIView *src = ((UIViewController *) self.sourceViewController).view;
    UIView *dst = ((UIViewController *) self.destinationViewController).view;

    UIWindow *window = [[[UIApplication sharedApplication] delegate] window];
    [window insertSubview:dst aboveSubview:src];

    [UIView transitionFromView:src
                        toView:dst
                      duration:1.5
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    completion:^(BOOL finished){
                        [src removeFromSuperview];
                        window.rootViewController = self.destinationViewController;
                    }];
}

这是如果您没有使用导航控制器

这是用于调试还是用于实际生产?前者可以通过使用调试->切换慢速动画在模拟器中解决。@直到,我正在寻找实际生产。其他方法是创建一个全屏覆盖,并提供分段效果,但效果不是很好。你有没有研究过自定义分段?您可以将UIStoryboardSegue对象子类化并实现-perform方法,在该方法中您可以创建自己的动画,并完成持续时间。@JasonC.Howlin您的评论就像一个答案一样好:)@JasonC.Howlin,我会研究它,您介意将其作为一个答案,这样我就可以接受它。谢谢你,伙计!