UIView 过渡动画
Posted
技术标签:
【中文标题】UIView 过渡动画【英文标题】:UIView transition animation 【发布时间】:2014-06-20 04:56:14 【问题描述】:ViewB
和ViewC
是ViewA
的子视图。假设ViewB
当前位于ViewC
之上。我想用翻转动画将ViewC
放在顶部,如图所示。我使用UIView
类方法(void)transitionFromView:(UIView *)fromView toView:(UIView *)toView duration:(NSTimeInterval)duration options:(UIViewAnimationOptions)options completion:(void (^)(BOOL finished))completion
。但是,ViewA
与 viewB
一起翻转,这不是所需的行为。所需的行为只是让ViewB
翻转并且ViewC
现在位于顶部。知道如何实现所需的行为吗?
【问题讨论】:
你能贴出实际的代码吗,你用什么来查看和查看..? 一个简单的解决方法(不更改代码)是在执行transitionFromView:toView:duration:options:completion:
之前将两个视图分组到另一个与它们具有相同大小的“容器”视图中。此外,如果您只想显示/隐藏视图(而不是在层次结构中添加/删除它们),您可以在选项中添加 UIViewAnimationOptionShowHideTransitionViews
。
@allainian,这解决了我的问题。谢谢!!!
【参考方案1】:
试试这个:
-(void)FilpAnimation
viewObjB.alpha=1.0;
viewObjB.hidden=NO;
[UIView transitionWithView:viewObjB
duration:1.5
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^
viewObjB.hidden=YES;
viewObjB.alpha=0.0;
completion:nil];
viewObjC.alpha=0.0;
viewObjC.hidden=YES;
[UIView transitionWithView:viewObjC
duration:1.5
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^
viewObjC.hidden=NO;
viewObjC.alpha=1.0;
completion:nil];
【讨论】:
感谢您的回复。我实施了@Alladinian 的建议,但我认为你的建议也可以。以上是关于UIView 过渡动画的主要内容,如果未能解决你的问题,请参考以下文章
UIView.animateKeyframes 跳转到下一个动画的开始而不是平滑过渡
通过将 UIView 过渡添加到 UIStackView 来制作动画