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,我会研究它,您介意将其作为一个答案,这样我就可以接受它。谢谢你,伙计!