iOS 8 vibrancy 图像未在设备上显示

iOS 8 vibrancy image not showing on device

所以我使用 Xcode 为 iOS 8 创建了一个简单的应用程序,并在界面生成器中使用了新的 "Visual Effects View with Blur and Vibrancy" 对象。它适用于文本,但所有图像似乎 只能在模拟器中工作 ,none 在任何硬件上。

为了准确说明我的意思,这里有一个比较。 模拟器中的屏幕截图(预期外观):

iPhone 上的屏幕截图(8.3,与模拟器版本相同):

所以三个圆形元素是:一个图像,一个与背景图像相同的按钮,以及相同但没有活力效果的按钮("norm. btn")。看起来模糊 + 活力效果是在 Xcode 中通过两个 "Visual Effect views" 实现的 - 一个仅实现模糊的顶视图,以及一个在属性 "vibrancy" 中选中的嵌套视图 window。

知道为什么会这样吗?我真的很喜欢图像中充满活力的外观,但它不适用于我的 iPhone 5s 或我的 iPad Air 2。

非常感谢!!!

更新: 我做了一些研究,发现我收到警告“被要求为其不透明度设置动画。这将导致效果出现中断,直到不透明度 returns 为 1。”最初我以为这破坏了活力效果,但在删除所有动画并且不再收到警告后,图像仍然不可见。我发现警告只是意味着当 VisualEffectView 的 alpha 还不是 1 时,活力不会开始工作(看起来是灰色的)。

我还发现图像确实显示了(以 "broken" 方式,即看起来黑色而不是充满活力的过渡),但当 alpha 达到 1 时它们消失了。

这是一个部分解决方案:将资产目录中的图像切换为模板图像:

至少这样你会在设备上看到一些东西

EDIT 实际上,Apple 对此很明确。我引用 UIVisualEffectView.h header:

UIImageView will need its image to have a rendering mode of UIImageRenderingModeAlwaysTemplate to receive the proper effect.