我在uinavigationbar上面有一个自定义图像标题。我用这段代码做到了这一点:
self.navController.view.frame = CGRectMake(0.0, 0.0, 320.0, 480.0);
self.navController.navigationBar.frame = CGRectMake(0.0, 73.0, 320.0, 44.0);
UIView *checkNav = [self.navController.view viewWithTag:9999];
if (checkNav == nil) {
UIImageView *imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"header-logo.jpg"]];
imgView.tag = 9999;
[imgView setFrame:CGRectMake(0.0, 23.0, 320.0, 50.0)];
[self.navController.view addSubview:imgView];
}
这很有效。但是,当应用程序变为非活动状态(点击主iphone主页按钮)然后你回到应用程序时,uinavigationbar会转移到屏幕顶部的默认位置,并隐藏在我的自定义标题图像后面。
我已经尝试将代码抛入applicationDidBecomeActive,但它没有帮助。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:2)
你会在docs:
中收到警告除了少数例外,您不应该直接修改导航栏对象。允许修改导航栏的barStyle或半透明属性,但不得直接更改其框架,边界或Alpha值
话虽如此,你应该能够通过在applicationDidBecomeActive或applicationWillEnterForeground中重复上面的代码来获得效果,假设你有一个指向导航控制器的指针。你可能会发现隐藏和重新显示导航栏是必需的(一点点黑客,但它可以帮助 - 我有类似的问题隐藏/显示状态栏和导航栏没有到达正确的位置)
答案 1 :(得分:0)
如何将代码放入viewWillAppear?