ale*_*clp 5 iphone animation core-graphics objective-c ios
我从这开始:

当用户点击这些面孔中的任何一个时,它必须设置为屏幕中心的动画,然后显示它周围的一些按钮,有点像这样

问题是我不知道我该怎么做,所以我问你一些建议,你怎么建议我应该这样做.
可以在以下位置找到示例实现: https: //github.com/WDUK/ButtonAnimationStackOverflow(大多数(如果不是全部)处理都是在 WDViewController.m 中完成的,因此请集中精力在那里)
作为简要概述,该示例的开发过程如下:
不需要 CoreAnimation,我们只需通过 UIKit 动画包装器以及center和alpha属性的操作即可实现所需的动画。
动画分两个阶段完成,首先将所选按钮置于中心,然后展开可用选项。还包括反转此操作的动画。
模糊背景是通过使用 Apple 作为 WWDC 2013 的示例代码提供的类别,并使用两个图像视图进行简单的淡入/淡出来实现的。这效果非常好。
关键计算:
要将图像动画到中心,请将图像设置为与动画块内.center相同self.view.center
要计算图像周围选项的位置,请使用以下公式
newX = oldX + distance * cos(angleInRadians);
newX = oldY + distance * sin(angleInRadians);
Run Code Online (Sandbox Code Playgroud)选项的角度(以度为单位)可以计算为
indexOfOption * (360.0 / numberOfOptions)
Run Code Online (Sandbox Code Playgroud)将度数转换为弧度
(angleInDegrees / 180.0) * M_PI
Run Code Online (Sandbox Code Playgroud)要将图像动画恢复到其原始位置,可以存储原始位置并使用它(屏幕上有 15 个选项可能会很混乱),或者计算原始位置(如我的示例中所示)。为此,您需要执行以下操作
image.origin.x = edgePadding + (imageSize * (i%imageCountPerRow) + (i%imageCountPerRow) * edgePadding);
image.origin.y = topPadding + edgePadding + (imageSize * (i/imageCountPerRow) + (i/imageCountPerRow) * edgePadding);
Run Code Online (Sandbox Code Playgroud)我想说它们是您需要记住的关键计算,各种图像和视图的 alpha 值是直接的。
正如 GitHub 中提到的,我不保证代码在生产中使用时的质量和准确性。我只是在 40 分钟内完成了它,可能存在拼写错误和小错误。但它确实可以编译并运行,并演示了我认为您想要的效果。
如果您想扩展此代码,请继续。您可以采取很多措施来改进这一点(例如,显示选项时速度会轻微反弹!),尽管其中一些改进可能需要在考虑核心动画的情况下重写代码。
| 归档时间: |
|
| 查看次数: |
275 次 |
| 最近记录: |