自定义的UITabBar和ViewController之间的空间(Space between cus

2019-07-29 13:12发布

我参加了一个定期UITabBar ,改变它的背景图片自定义一个具有高度较低,所以我改变了height的的frame 。 起初,我得到的是标签栏下方的空白区域。 所以我改变了origin的的frame了。 但现在空白已经移动了标签栏上方,这就是结果:

这是宣布在AppDelegate的标签栏的代码:

self.tabContoller = [[UITabBarController alloc] init];
//customizing the tabbar
UIImage * tabBackgroundImage = [UIImage imageNamed:@"tabBarBg.png"];
self.tabContoller.tabBar.backgroundColor = [UIColor colorWithRed:245.f/255.f green:245.f/255.f blue:245.f/255.f alpha:255.f/255.f];
self.tabContoller.tabBar.backgroundImage = tabBackgroundImage;
//setting the tabbar height to the correct height of the image
CGRect tabR = self.tabContoller.tabBar.frame;
CGFloat diff = tabR.size.height - tabBackgroundImage.size.height;
tabR.size.height = tabBackgroundImage.size.height;
tabR.origin.y += diff;
self.tabContoller.tabBar.frame = tabR;

我想,问题是,在ViewController小号自己绘制上述恒定空白,这是常规的标签栏的高度。 有什么办法去改变它?

Answer 1:

改变你的UITabBarController的子视图一个全尺寸的框架,这为我工作:

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


Answer 2:

尝试建立从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到你想要的大小。 简单和容易。



Answer 3:

如果改变提到像@JoaT框架不工作,确保视图控制器的观点有正确的自动尺寸掩模组。

该SO链接可能会有所帮助。



Answer 4:

我试图通过改变高度和TabBar的起源,对我来说它的工作properly.You可以通过增加你的ViewController的高度尝试。



文章来源: Space between custom UITabBar and ViewController