【问题标题】:Getting started creating custom view transitions开始创建自定义视图转换
【发布时间】:2009-06-29 21:05:29
【问题描述】:

我正在寻找有关创建自定义视图转换的教程。

尤其是涉及除 UIView 之外的元素的转换,例如在发生转换时播放动画或修改正在转换的 UIView 的屏幕截图。

我的意思不是实现基本的转换集(滑动、淡入淡出等),Apple 网站上有很多示例。我说的是添加视频/声音/附加动画,同时将它们全部包装在可重用的过渡中。

我对一些底层工具包(core-animation 和quartz)有点熟悉,但我正在寻找关于该主题的没有经验的教程。

【问题讨论】:

    标签: iphone uikit core-animation


    【解决方案1】:

    我刚刚组合了一个过渡类来在 OpenGL ES 中实现您自己的动画。

    欢迎阅读here

    【讨论】:

      【解决方案2】:

      CoreAnimation 动画通过记录 UIView 属性的特定子集的差异来工作。它们不响应任何用户定义的属性,并且根本不做比您在演示中看到的更高级的转换。您可以截取当前视图的屏幕截图,将其作为纹理保存在内存中,隐藏旧视图并同时显示 OpenGL 视图。然后使用屏幕截图纹理和各种网格动画,您可以渲染自定义过渡(包括围绕皱折/折叠边缘的 alpha 混合),然后处理 OpenGL 视图以完全显示目标视图。似乎是一个有趣的项目,而且你很少有人能完成它。

      【讨论】:

      • 这很有意义。谢谢。可悲的是,我可能没有机会实现这一点——我只是在做研究,看看如何满足失败的合同的要求。不过,希望这对将来的某些人有用。
      【解决方案3】:

      这里是使用标准 UIView 过渡的快速指南。 http://chris-software.com/index.php/dev-center/view-transitions/

      如果你想淡入一个视图使用这样的东西。这适用于任何类型的具有 alpha 属性的元素,例如 UIImageViews 等。 someView.alpha = 0; [viewController.view addSubview:someView];

      [UIView beginAnimations:nil context:nil];
      [UIView setAnimationDuration:.5];
      [UIView setAnimationDelegate:self];     
      someView.alpha = 1;
      [UIView commitAnimations];
      

      【讨论】:

      • 这并不是我所说的“自定义”。这是非常基本的。我正在寻找将视图折叠成纸飞机并在它飞离屏幕时发出缩放噪音的东西,或者一只手伸手将它揉成一团并将其扔进废纸篓。动画、声音、叠加视频……
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 2017-05-08
      • 1970-01-01
      • 2012-07-25
      • 2015-06-12
      相关资源
      最近更新 更多