怎样才能得到一个全尺寸的UINavigationBar标题栏

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我试图添加一个自定义控件作为UITavigationBar中的titleView。当我这样做时,尽管设置了框架和通常会呈现全宽的属性,但我得到了以下结果:

明亮的蓝色可以忽略,因为它隐藏了我的自定义控件。问题是两端的窄条导航栏。如何我让的自定义视图伸展100%?

CGRect frame = CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.width, kDefaultBarHeight);
UANavBarControlView *control = [[[UANavBarControlView alloc] initWithFrame:frame] autorelease];
control.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
self.navigationItem.titleView = control;

提问于
用户回答回答于

设置视图的导航Item的标题永远不会起作用。相反,可以将子视图添加到导航控制器的导航栏中:

UIView* ctrl = [[UIView alloc] initWithFrame:navController.navigationBar.bounds];
ctrl.backgroundColor = [UIColor yellowColor];
ctrl.autoresizingMask = UIViewAutoresizingFlexibleWidth;
[navController.navigationBar addSubview:ctrl];
用户回答回答于

你所要做的就是子类UIView和重写setFrame

就像这样:

    - (void)setFrame:(CGRect)frame {
        [super setFrame:CGRectMake(0.0, 0.0, 320.0, 50.0)];
    }

扫码关注云+社区