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

时间:2016-04-06 06:05:54

标签: ios uiview xcode7 uianimation

我有一个屏幕,称之为视频屏幕,其中一个视频显示详细信息和评论,就像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可以导航视频,例如提供镜像效果吗?

1 个答案:

答案 0 :(得分:1)

使用此:

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