Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.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
Ios 在addSubView中添加从左到右的幻灯片动画(过渡)_Ios_Iphone_Objective C_Uiviewanimationtransition - Fatal编程技术网

Ios 在addSubView中添加从左到右的幻灯片动画(过渡)

Ios 在addSubView中添加从左到右的幻灯片动画(过渡),ios,iphone,objective-c,uiviewanimationtransition,Ios,Iphone,Objective C,Uiviewanimationtransition,我试着模仿NavigationViewController,非常类似于iPhone中的默认MailApp 单击邮件摘要时,它应滑入邮件详细信息,单击“上一步”按钮时,邮件摘要视图将再次滑入背面 这就是我必须动画化从摘要到细节的过渡(removeFromSuperView) 这就是我必须动画化从细节到摘要的转换(addSubview) 现在,我的第一部分代码运行良好!作为第二部分,我刚刚能够实现淡入动画。如何引入幻灯片过渡?或者您可以查看:HorizontalSlide Segue(只需谷歌一下,

我试着模仿
NavigationViewController
,非常类似于
iPhone中的默认
MailApp

单击邮件摘要时,它应滑入邮件详细信息,单击“上一步”按钮时,邮件摘要视图将再次滑入背面

这就是我必须动画化从摘要到细节的过渡(
removeFromSuperView

这就是我必须动画化从细节到摘要的转换(
addSubview


现在,我的第一部分代码运行良好!作为第二部分,我刚刚能够实现淡入动画。如何引入幻灯片过渡?

或者您可以查看:HorizontalSlide Segue(只需谷歌一下,我在手机上找不到链接)这是一个很棒的幻灯片过渡,只是一个从视图a添加到视图B的过渡


另一方面,如果这是在导航控制器中,推送或弹出在默认情况下应该有幻灯片动画…

我只需要为我的
CATTransition选择
kCATransitionPush
类型

    CATransition *transition = [CATransition animation];
    transition.duration = 0.5;
    transition.type = kCATransitionPush;
    transition.subtype = kCATransitionFromLeft;
    [transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [parentView.layer addAnimation:transition forKey:nil];

    [parentView addSubview:myVC.view];
Swift更新:

    let transition = CATransition()
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromLeft
    parentView.layer.add(transition, forKey: nil)
    parentView.addSubview(myVC.view)

如果我想从超级视图中删除myVC.view,该怎么办。@iBug您可以添加这一行来删除myVC.view:[myVC.view性能选择器:@selector(removeFromSuperview)with object:nil afterDelay:0.5];
    CATransition *transition = [CATransition animation];
    transition.duration = 0.5;
    transition.type = kCATransitionPush;
    transition.subtype = kCATransitionFromLeft;
    [transition setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
    [parentView.layer addAnimation:transition forKey:nil];

    [parentView addSubview:myVC.view];
    let transition = CATransition()
    transition.type = kCATransitionPush
    transition.subtype = kCATransitionFromLeft
    parentView.layer.add(transition, forKey: nil)
    parentView.addSubview(myVC.view)