美文网首页
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