如何在另一个视图 iOS 上垂直翻转视图?
Posted
技术标签:
【中文标题】如何在另一个视图 iOS 上垂直翻转视图?【英文标题】:How to flip the view vertically on another view 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));
请任何知道的人分享一下,我需要实现这个动画。
【问题讨论】:
【参考方案1】:尝试使用带有UIViewAnimationOptionTransitionFlipFromBottom
或UIViewAnimationOptionTransitionFlipFromTop
的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】:只需尝试注释代码中的最后一行,您的视图就会在同一位置设置动画或垂直翻转,而不会与底层视图合并。
【讨论】:
以上是关于如何在另一个视图 iOS 上垂直翻转视图?的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 如何垂直转换(翻转)自定义 UITableViewRowAction
如何在 Swift(Xcode 6.3)中翻转标签(获取镜像视图)
如何检测按下的按钮并将其显示在另一个视图上? Objective-C