iOS 7 UINavigationController推动动画阴影

时间:2013-12-17 15:01:31

标签: ios iphone animation uinavigationcontroller

使用iOS 7创建了一个新的推送动画,它将推动的视图控制器滑动到层次结构的顶部。但是当动画发生时,iOS显然会做两件事来修改顶视图控制器的设计:

添加了阴影:

A shadow of view controller when animating

底部视图控制器上的灯光覆盖:

A light overlay

在大多数应用程序中,这不是问题。但是,我目前正在开发一个像素完美设计的应用程序,我使用具有清晰背景的视图控制器。但是此功能保持不变,并且灯光覆盖显示在视图控制器上。因为背景是白色渐变,所以此灯光覆盖(在屏幕截图2上)非常明显,并且当动画完成时,它将被移除而不会产生动画,这使得它非常明显且令人讨厌。

我知道我可以创建自定义动画和过渡,但我想知道:

有没有办法删除(或修改)此灯光叠加层和阴影,而无需创建自定义过渡?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

这不是最优雅的解决方案,但我看到人们使用UIImage动画来展示他们想要展示的内容。所以,你可以:

  • 截取传入的UIViewController
  • 动画UIImageView
  • 的到来
  • 致电pushViewController:animated:,将NO传递给animated:
  • 删除UIImageView
  • 再次,有点黑客,但也许这是你的方案的最佳解决方案。

    答案 1 :(得分:1)

    试试这个代理

    [[UIImageView appearanceWhenContainedIn:NSClassFromString(@"_UIParallaxDimmingView"), nil] setAlpha:0.0f];
    

    我不知道Apple是否允许这样做,因为它使用私有API。将在提交应用时更新。