gpt4 book ai didi

iOs Segue 动画从左到右(水平)

转载 作者:技术小花猫 更新时间:2023-10-29 10:55:11 27 4
gpt4 key购买 nike

我几乎是 Xcode 4 的新手。有一种方法可以将自定义过渡动画添加到 segue 中,它不在 Storyboard管理中 Interface Builder 呈现的四个动画中吗?具体来说,我想要一个类似于普通“垂直覆盖”但水平的动画。我希望 View 从左向右(或从右向左)滑动传递给另一个 View ,而不是像在“覆盖垂直”过渡中那样从上到下滑动。我尝试使用滑动手势但没有运气:即使是从上到下过渡,无论如何,我不明白为什么默认过渡是从上到下,而所有应用程序的默认过渡通常是从右到左或左向右,尤其是在你滑动的情况下......

我也尝试了一种编程方式,但即使在这种情况下也没有运气,使用以下代码:

#import "JHCustomSegue.h"

@implementation JHCustomSegue
- (void) perform {
UIViewController *src = (UIViewController *) self.sourceViewController;
UIViewController *dst = (UIViewController *) self.destinationViewController;

[UIView transitionWithView:src.navigationController.view duration:0.5 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{
[src presentModalViewController:dst animated:NO];
}
completion:NULL];
}

@end

在界面生成器中,我将此类定义为我的 segue 类。使用断点,我看到它进入了函数 perfom 但是......不要执行!我已经在纵向模式下阻止了该应用程序(不知道这是否有问题)。我尝试在真实的 ipad 和模拟的 iphone 上运行该应用程序。同样的问题。

最佳答案

您可以在自定义 Segue 中使用 CATransition 来实现从左到右的过渡。将此 #import "QuartzCore/QuartzCore.h"添加到您的自定义 Segue

-(void)perform {

__block UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
__block UIViewController *destinationController = (UIViewController*)[self destinationViewController];

CATransition* transition = [CATransition animation];
transition.duration = .25;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionPush; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade
transition.subtype = kCATransitionFromLeft; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom



[sourceViewController.navigationController.view.layer addAnimation:transition
forKey:kCATransition];

[sourceViewController.navigationController pushViewController:destinationController animated:NO];


}

关于iOs Segue 动画从左到右(水平),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9826420/

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