【问题标题】:How do I change the image view's image to another in a clean fade animation? (Not just a simple alpha change.) [duplicate]如何在干净的淡入淡出动画中将图像视图的图像更改为另一个? (不仅仅是一个简单的阿尔法变化。)[重复]
【发布时间】:2014-07-18 10:48:46
【问题描述】:

我有两张图片:一张正常的未模糊屏幕截图,以及同一屏幕截图的模糊版本(iOS 7 模糊样式)。

我想要动画从最初的未模糊屏幕截图平滑过渡到模糊屏幕。

这似乎是不可能的,简单地将非模糊的覆盖在顶部并将 alpha 降低到 0。它只是改变顶部的透明度,所以特别是对于文本,你会得到这种难看的效果,而未模糊的文本只是突出了模糊版本,根本没有真正转变为另一个。

另一方面,在 iOS 7 中,当您按住主屏幕按钮以调出 Siri,然后再次按下它以关闭时,您可以从模糊的 Siri 过渡到您之前所在的任何屏幕:

(看到了吗?文本不仅仅是叠加的,它实际上是从一个转换到另一个!)

显然这是可能的。我怎样才能达到这个效果?似乎只是降低 alpha 值是行不通的。

【问题讨论】:

  • 您必须找到一种方法来为每一帧动画渲染具有不同模糊半径的模糊。这是获得像您正在寻找的那样平滑地改变大小的模糊的唯一方法。也许更困难,但更令人满意。

标签: ios objective-c cocoa-touch ios7 uiimageview


【解决方案1】:

不要降低原始屏幕截图的 alpha,而是将模糊的截图放在上面并提高其 alpha。你根本不需要修改未模糊的,这会给你想要的效果。

  1. 将 blurredImageView 的 alpha 设置为 0
  2. 将 blurredImageView 放在 regularImageView 之上
  3. 将 blurredImageView 的 alpha 设置为 1

【讨论】:

  • 这会有同样的问题。模糊的半径不会增加,因此在不透明度达到 100% 之前,您仍然会通过模糊看到锐利的边缘。
  • 我明白你现在的意思了。我能想到的唯一方法实际上是渲染几个增加模糊半径的快照并在它们之间制作动画。
猜你喜欢
  • 1970-01-01
  • 2013-07-15
  • 1970-01-01
  • 2012-01-25
  • 1970-01-01
  • 2023-03-05
  • 2013-07-01
  • 2023-04-10
  • 2014-02-08
相关资源
最近更新 更多