具有清晰背景的Segue Push动画在iOS 7上闪烁

Sai*_*son 5 objective-c ios7 xcode5

我有这个简单的故事板:

在此处输入图片说明

所有这些UIViewController背景都是清晰的(透明的),但是我使用以下代码将背景图像作为导航栏和窗口背景:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{      
    // window background
    self.window.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"window"]];

    // navbar background
    UIImage *navBackgroundImage = [UIImage imageNamed:@"navbar_bg"];
    [[UINavigationBar appearance] setBackgroundImage:navBackgroundImage forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setShadowImage:[[UIImage alloc] init]];
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

通常,这段代码可以在iOS 6上正常运行而不会闪烁,但是今天当我尝试在iOS 7上进行构建时,segue动画(推送)正在闪烁。看来UIViewController背景不是完全透明的。

请观看此视频:http : //www.youtube.com/watch?v=-oZc9SwPJjs

谢谢

Rob*_*raz 3

我前段时间遇到了同样的问题,具有透明背景的视图控制器产生了这种“效果”,实际上不是闪光,而是视图滑过另一个视图的动画。解决这个问题的唯一方法是删除推送的动画,实际上我认为你不需要这个动画,所以看看这个问题的答案,它展示了如何更改它:

更改动画过渡

或者看看这个,他有一个示例代码,您可以下载并查看它是如何工作的:

http://www.captechconsulting.com/blog/tyler-tillage/ios-7-tutorial-series-custom-navigation-transitions-more

希望能帮助到你!