我有这个简单的故事板:
所有这些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;
}
通常这段代码可以在iOS 6上运行而不会闪烁,但今天当我尝试在iOS 7上构建它时,segue动画(推送)正在闪烁。看起来UIViewController背景并不完全透明。
请观看此视频:http://www.youtube.com/watch?v=-oZc9SwPJjs
谢谢
答案 0 :(得分:2)
我前段时间面临同样的问题,具有透明背景的视图控制器使这种“效果”,实际上不是闪光,它是视图在其他视图上滑动的动画。解决这个问题的唯一方法是删除推送的动画,实际上我认为你不需要这个动画,所以看看这个问题的答案,它显示了如何改变它:
或者看看这个,他有一个示例代码,你可以下载并看看它是如何工作的:
希望它有所帮助!