【问题标题】:UINavigationBar custom title being hidden by backgroundUINavigationBar 自定义标题被背景隐藏
【发布时间】:2011-09-08 01:32:09
【问题描述】:

我正在使用此代码将自定义UIImageView 添加到我的UINavigationBar

UIImageView *background = [[[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)] autorelease];
[background setImage:[UIImage imageNamed:@"nav_background.png"]];
[background setTag:kTagForReference];
[self.navigationController.navigationBar insertSubview:background atIndex:0];

然后我使用以下代码添加自定义标题:

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 400, 44)];
... 
[self.navigationItem setTitleView:label];
[label release];

但在我的一些推送视图中,标题被隐藏(或不可见)。如果标题消失,我似乎无法将两个以上的视图推送到堆栈上。

我试图将我的UIImageView 背景强制到栏的后面,但这仍然没有帮助。我已经打印了UINavigationBar 的子视图,我可以看到 UILabel 在那里,我只是看不到它!

任何帮助将不胜感激。

【问题讨论】:

    标签: cocoa-touch uinavigationbar


    【解决方案1】:

    如果您可以运行dumpWindows() function,输出将显示视图层次结构,以便您查看覆盖它的视图。

    【讨论】:

      【解决方案2】:

      您很可能希望使用UIToolBar 而不是NavigationBar。然后您可以将子视图添加到UIToolbar

      将 UILabel 带到最前面的视图。

      [self.view bringSubviewToFront: label];
      

      【讨论】:

      • 如果我使用UIToolbar,那么我的所有导航堆栈会发生什么?
      • 只要把 UIToolbar 添加到你的控制器,然后隐藏 NavigationBar,什么都没有。您甚至可以设置“返回”或“完成”按钮来弹出或关闭导航控制器。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-20
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      相关资源
      最近更新 更多