取消NavigationBar左右两边的空隙

时间:2022-11-18 00:00:05

因为美工设计的NavigationBar两侧是没有空隙的,于是就发现了这个问题,怎么设置NavigationBar两边的距离。然后到code4App上,看了一下所有关于NavigationBar的demo左右两边都是有空隙的。说明这个不是简单地通过设置UINavigationItem上的UIButton的frame来实现的,(是的,我试过将UIButton的frame的x设置为负数,这个在Android的界面适配中可以常用到的,比如设置RadioButton的按钮和文字之间的距离)。最后求助Google,解决起来还是很简单的。和我想的有点像,具体如下

    //***取消navigationBar左右得空隙***
    //1.得到UINavigationBar的frame数据
    CGRect frame = navigationBar.frame;
    //2.修改origin.x,使UINavigationBar整体向左移动10个像素
    frame.origin.x = -10;
    //3.拉伸UINavigationBar20个像素(先补回左移的10个像素,再向右移动10个像素)
    frame.size = CGSizeMake(320+20, 44);
    navigationBar.frame = frame;

效果图:

未单击状态

取消NavigationBar左右两边的空隙 

单击状态,可以看到左边的空隙没有了

 取消NavigationBar左右两边的空隙

等一下,可以看到右侧有一个黑色的残缺小角,我猜测是因为NavigationBar的背景是按平铺填充的,解决方法就是将背景图片上的内容向右移动20像素,再在图片右侧添加20个透明像素就好了。

O啦~~~

转帖请保留出处:http://blog.csdn.net/u011638883/article/details/12837117

谢谢!!