因为美工设计的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的背景是按平铺填充的,解决方法就是将背景图片上的内容向右移动20像素,再在图片右侧添加20个透明像素就好了。
O啦~~~
转帖请保留出处:http://blog.csdn.net/u011638883/article/details/12837117
谢谢!!