美文网首页
NavigationBar的占位问题

NavigationBar的占位问题

作者: 码蚁居然被用过了 | 来源:发表于2016-03-24 12:39 被阅读98次

情景再现:产品说程序启动的时候要根据服务器的配置显示一个按钮(神马,动态添加按钮,在原有的xib上加好麻烦,代码直接添加好了)。

代码如下:

UIButton *button = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];

button.backgroundColor = [UIColor redColor];

[button setTitle:@"next" forState:UIControlStateNormal];

[button addTarget:self action:@selector(next) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

结果如下:发现右上角那块红色是按钮,但是被navigation挡住了

不见的按钮.png

CGRectMake(0, 0, 50, 50),为什么y轴坐标我要写0,是因为对于VC来说,它并不需要关心它是直接展示还是被嵌在navigation里面。

解决方案:

1、把y=0改成y=64,这样就能够显示在正确的位置了,但是坐标原点和习惯有点不一致,所有控件的y轴都要从64算起;
2、加上[self.navigationController.navigationBar setTranslucent:NO];

结果如下图:


出现的按钮.png

原因:从ios7开始Navigationbar默认不占位,修改translucent属性后即可占位。该字段的描述如下:
//New behavior on iOS 7.
//Default is YES.

相关文章

网友评论

      本文标题:NavigationBar的占位问题

      本文链接:https://www.haomeiwen.com/subject/mujrlttx.html