自定义UITabBar和ViewController之间的空间

时间:2012-05-24 12:23:18

标签: iphone objective-c ios uitabbarcontroller uitabbar

我定期UITabBar并将其背景图片更改为自定义图片,其高度较低,因此我更改了height的{​​{1}}。 我首先得到的是标签栏下方的空白区域。所以我也更改了frame的{​​{1}}。但现在空白区域已经向上移动到标签栏上方,这就是结果:

space above tab bar

这是在AppDelegate中声明标签栏的代码:

origin

我想问题是frame s将自己绘制在常量空间之上,这是常规标签栏的高度。有没有办法改变它?

4 个答案:

答案 0 :(得分:7)

将您的UITabBarController的子视图更改为完整大小的框架,这对我有用:

[[yourTabBarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 480)];

答案 1 :(得分:7)

尝试创建从UITabBar扩展的类,并使用此函数:

- (CGSize)sizeThatFits:(CGSize)size {
    CGSize auxSize = size;
    auxSize.height = 54; // Put here the new height you want and that's it
    return auxSize;
}

这会将UITabBar的大小调整为您想要的大小。简单易行。

答案 2 :(得分:0)

如果像@JoaT那样更改框架不起作用,请确保视图控制器的视图具有正确的自动调整遮罩集。

SO链接可能会有所帮助。

答案 3 :(得分:0)

我尝试通过更改tabbar的高度和原点,对我来说它工作正常。你可以尝试增加viewcontroller的高度。