【问题标题】:How to flip the view vertically on another view iOS?如何在另一个视图 iOS 上垂直翻转视图?
【发布时间】:2014-12-11 07:34:12
【问题描述】:

我正在开发一个包含视图堆栈的应用程序,我希望当用户在图像视图上向下滑动时,此翻转并显示另一个视图。它可以工作,但是当它垂直翻转时,它会与下方的视图合并并显示另一个视图查看。

请通过链接了解一下:https://dribbble.com/shots/1667024-Events-deck-animation

在上面的链接中,在左右滑动后的动画中,用户将垂直向下而不与下面的视图合并。请帮助如何实现这个垂直翻转动画,如上述链接所示。

我正在使用以下代码垂直翻转单层:

float duration = 1.0f;
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.x"];
animation.delegate = self;
animation.fromValue = [NSNumber numberWithDouble:-0.0f * M_PI];
animation.toValue = [NSNumber numberWithDouble:-1.0f * M_PI];
animation.duration = duration;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeRemoved;
animation.repeatCount =1;
animation.beginTime = CACurrentMediaTime();
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
[photo.layer addAnimation:animation forKey:@"rotationX"];
photo.layer.position = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds));

请任何知道的人分享一下,我需要实现这个动画。

【问题讨论】:

    标签: ios swift uiview core-animation caanimation


    【解决方案1】:

    尝试使用带有UIViewAnimationOptionTransitionFlipFromBottomUIViewAnimationOptionTransitionFlipFromTop 的UiView 的transitionFromView 方法在UIView 上实现动画而不是视图层。

    喜欢:

    [UIView transitionFromView:viewToReplace
                        toView:replacementView
                      duration:1
                       options:UIViewAnimationOptionTransitionFlipFromTop
                    completion:nil];
    

    viewToReplace的滑动手势选择器方法中添加这个调用

    更多信息请看这个链接:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/index.html#//apple_ref/doc/uid/TP40006816-CH3-SW105

    编辑: 可能这对你有用。

    // Consider flipView as the view that need to flip vertical 
    [UIView transitionWithView:flipView
                          duration:1
                           options:UIViewAnimationOptionTransitionFlipFromTop
                        animations:^{
                            // flipView.backgroundColor = [UIColor greenColor];
                            // update to be done with flip
                           } completion:nil];
    

    【讨论】:

    • 我试过了,但它会对容器视图进行转换,我需要单个视图,这就是我选择 CABasicAnimation 的原因
    • 如果用户向下滑动,我有一个容器视图,其中四个图像视图对齐为堆栈。唯一的顶部图像视图应该垂直翻转。从您的代码中,它会翻转容器视图本身。
    • 在滑动选择器方法中,您应该使用位于堆栈顶部的视图设置翻转视图,您是否在管理它?
    • 翻转视图是旋转视图,不会影响其他视图。
    • 这里的主要问题是,顶部图像视图在旋转时不应与下方视图合并。
    【解决方案2】:

    只需尝试注释代码中的最后一行,您的视图就会在同一位置设置动画或垂直翻转,而不会与底层视图合并。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-14
      • 2019-08-03
      • 2012-04-03
      • 1970-01-01
      相关资源
      最近更新 更多