如何为单个 UIView 提供滑动动画?

How to give sliding animation to a single UIView?

我有一个屏幕,称之为视频屏幕,其中显示一个视频,其中包含详细信息和评论,就像 youtube 一样。现在这个视图是可滑动的,意味着每当用户滑动屏幕时,下一个或上一个视频通过改变整个内容视图来。

我正在使用 [UIView transitionWithView] 来实现滑动效果。通过更改内容视图的框架,我正在执行如下向右滑动的代码。

 [UIView transitionWithView:viewTop duration:0.4
                       options:UIViewAnimationOptionTransitionCrossDissolve
                    animations:^{
                        viewTop.frame = CGRectMake(SCREEN_WIDTH, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height);
                    }
                    completion:^(BOOL Finished){

                        [self getNextVideoDetail];
                        viewTop.frame = CGRectMake(-SCREEN_WIDTH, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height);

                        [UIView transitionWithView:viewTop duration:0.3
                                    options:UIViewAnimationOptionTransitionCrossDissolve
                                 animations:^{
                                     viewTop.frame = CGRectMake(0, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height);
                                 }
                                 completion:nil
                  ];

                    }];

在这里,viewTop 是我的内容视图。一切正常,但我希望每当我向左滑动屏幕时,在视图完全消失之前,视图的某些部分应该显示在右侧。因为我上面写的代码会显示白色 self.view 并且屏幕会空白几毫秒。

是否可以只使用一个 UIView 来导航视频,如提供镜像效果?

使用这个:

CATransition *transition = [CATransition animation];
transition.type = kCATransitionPush;
transition.subtype = kCATransitionFromLeft;
transition.duration = 0.4;
[viewTop.layer addAnimation:transition forKey:nil];