UINavigationBar标题文本部分显示在屏幕上

时间:2015-04-24 03:40:50

标签: ios ios8 autolayout uinavigationbar

我正在以编程方式创建UINavigationBar,它在iOS 7中按预期显示。但是,在iOS 8.x中,UINavigationBar中的所有文本都不会出现在屏幕的边界内。我的一个假设是这与Auto Layout有关。

navbar with streched title text

//ViewControllerRootHomeCenter.m
_navBar = [[UINavigationBar alloc] init];
_navBar.frame = CGRectMake(0,0, self.view.frame.size.width, 64);

// add hambuger menu
//...etc etc

[self.view addSubView:_navbar];

2 个答案:

答案 0 :(得分:0)

首先,请确保您没有对导航栏的宽度进行硬编码。

UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, 44)];

其次,如果启用了自动布局,请确保没有冲突的约束。如果没有启用,那么我就不明白你为什么会遇到这个问题。

答案 1 :(得分:0)

您也可以尝试以这种方式获取屏幕宽度:

CGRect frame = (CGRect){0,0,CGRectGetWidth([[UIScreen mainScreen]bounds]),64);

也许它会解决你的问题。