如何在标题视图的自定义导航栏中处理默认填充?

时间:2015-04-22 19:28:51

标签: ios objective-c iphone uinavigationcontroller uinavigationbar

我正在尝试使用标题视图自定义导航栏。 但似乎设置标题视图带有自己的左右和顶部填充。我期望标题视图根据给定的帧覆盖整个导航栏。

是预期的行为,如果是,而不是如何处理?

    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 375, 44)];
    view.backgroundColor = [UIColor greenColor];
    //Navigation Bar
    self.navigationItem.titleView = view;

The Navigation Title View is in green

2 个答案:

答案 0 :(得分:0)

如果您只想让导航栏变为绿色,请使用iOS 7+中的[self.navigationController.navigationBar setBarTintColor:[UIColor greenColor]];或iOS 6中的[self.navigationController.navigationBar setTintColor:[UIColor greenColor]]; -

答案 1 :(得分:0)

是的,似乎无法删除左/右填充。这是运行代码后Xcode中的调试视图的截图表单

enter image description here

灰色的外部视图是navigationBar,绿色显然是titleView。无论titleView的框架是什么,它都会被裁剪。

Apple文档就是这样说的:

自定义标题视图以导航栏为中心,可以调整大小以适应。

我认为唯一的解决方案是将navigationBar子类化,以便覆盖titleView框架。