UIView 过渡动画

Posted

技术标签:

【中文标题】UIView 过渡动画【英文标题】:UIView Transitions Animations 【发布时间】:2009-10-13 06:16:11 【问题描述】:

大家好,

SecondView *sv=[[SecondView alloc] initWithNibName:@"SecondView" bundle:nil]; [self presentModalViewController:sv 动画:YES];

我喜欢将默认动画(从底部弹出)更改为淡入淡出或 UIViewAnimationCurveEaseInOut

提前致谢

【问题讨论】:

【参考方案1】:

来自apple's iphone dev site的文档:

设置 modalViewController 属性 到指定的视图控制器。 调整其视图大小并将其附加到 视图层次结构。观点是 根据过渡动画 中指定的样式 modalTransitionStyle 属性 modalViewController 中的控制器 参数。

如果您想使用 Apple 提供的功能,您可以选择以下方法:

typedef enum 
   UIModalTransitionStyleCoverVertical = 0,
   UIModalTransitionStyleFlipHorizontal,
   UIModalTransitionStyleCrossDissolve,
 UIModalTransitionStyle; 

其他任何事情,您都必须手动完成,这并不难。首先在当前或新的视图控制器中加载新视图。将其设置为初始状态,启动动画块,调用:

+ (void)beginAnimations:(NSString *)animationID context:(void *)context

然后做任何你想做的转换:

+ (void)commitAnimations

有关 UIView 文档的更多信息:

UIView Class Reference

【讨论】:

【参考方案2】:

看看UIViewController Class Reference。基本上你需要的是:

sv.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;

【讨论】:

有没有办法实现类似于我们使用 UINavigationController 时得到的动画的动画(从左侧滑入)?

以上是关于UIView 过渡动画的主要内容,如果未能解决你的问题,请参考以下文章

UIView 动画过渡卷曲与透明背景

UIView.animateKeyframes 跳转到下一个动画的开始而不是平滑过渡

通过将 UIView 过渡添加到 UIStackView 来制作动画

在 2 个 UIViewController 的过渡之间为 UIView 元素设置动画

同时 UIViewController 过渡动画

UIView动画