【问题标题】:UIView "suck" animationUIView“吸”动画
【发布时间】:2011-02-09 12:06:55
【问题描述】:

我想使用这里引用的 UIView“吸”过渡(视图被“吸”成一个点):

http://iphonedevwiki.net/index.php/UIViewAnimationState#Using_suckEffect

然而,上述方法使用私有 API,这使得它对于 App Store 应用几乎毫无用处。如何在不依赖私有 API 的情况下重新创建类似的效果?我猜答案与 OpenGL 有关,尽管我在那里的经验为零。

【问题讨论】:

  • 很好的问题(我没有答案),但是当一些聪明的图形专家或女孩推出一个具有高质量吸/精灵和页面卷曲的嵌入式库时,这将是美好的一天效果。在那之前,我相信人们基本上只是在制作他们自己的(劣质)伪版本。好的,所以我没有答案,但您可能需要处理在 openGL 中的某些几何体上渲染纹理并为变形设置动画。
  • @quixoto:是的,这就是我计划走的路,尽管我仍然不知道从哪个方向开始。 @KennyTM:我的问题略有不同,因为我不想使用私有 API。这仍然是重复的吗?
  • 对不起,但我想知道如何指定此效果的角,默认情况下它发生在设备的左上角。我可以将其更改为右上角吗?如果可以,我该怎么做!!!谢谢你的回答!!!
  • 这将是一个蹩脚的问题,但我没有得到 - 我们在您提供的链接中在哪里使用私有 api? [UIView beginAnimations:@"suck" context:NULL]; [UIView setAnimationDuration:3.0]; [UIView setAnimationTransition:103 forView:pageImageView 缓存:YES]; [UIView setAnimationPosition:CGPointMake(12, 345)]; [UIView 提交动画];

标签: iphone cocoa-touch uikit uiview core-animation


【解决方案1】:

你检查过 cocos2d 框架吗?它是 openGL 的目标 c 包装器,并且做得非常好。您可以查看他们的演示视频,其中展示了该库支持的所有过渡类型。

【讨论】:

    【解决方案2】:

    只要 Apple 不公开记录这种影响,并且您想避免因使用私有 API 而被拒绝的风险,您就必须自己动手。

    开始着手解决此问题的建议是使用 OpenGL ES 着色器。

    以下博客文章包含一个演示 Quartz Composer 补丁,用于创建在 OS X 和 iOS 中看到的精灵效果: http://www.aderstedtsoftware.com/users/erik/weblog/c7cb9/

    使用此 QuartzComposer 文件中精灵过滤器中的代码是 OpenGL ES 着色器的良好开端。代码几乎可以按原样复制到 OpenGL 的着色器中。最多的工作可能是将 OpenGL 集成到您的应用程序中:将正确的视图渲染为 OpenGL 纹理并将 OpenGL 覆盖在您的应用程序上以根据您的着色器执行动画。

    【讨论】:

    • 链接好像失效了
    【解决方案3】:

    请在 git://github.com/rmd6502/Genie.git 上查看我的项目 - 现在速度很慢,但即将进行改进。

    【讨论】:

    • Here 是类似的东西......但运行速度更快
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多