Ios 如何隐藏选项卡栏的底部视图
我正在使用带有以下代码的自定义选项卡栏:Ios 如何隐藏选项卡栏的底部视图,ios,uitabbarcontroller,uitabbar,Ios,Uitabbarcontroller,Uitabbar,我正在使用带有以下代码的自定义选项卡栏: UIImage *selectedImage0 = [UIImage imageNamed:@"HomeDB.png"]; UIImage *unselectedImage0 = [UIImage imageNamed:@"HomeLB.png"]; UIImage *selectedImage1 = [UIImage imageNamed:@"ScheduleDB.png"]; UIImage *unselectedImage1 = [UIIm
UIImage *selectedImage0 = [UIImage imageNamed:@"HomeDB.png"];
UIImage *unselectedImage0 = [UIImage imageNamed:@"HomeLB.png"];
UIImage *selectedImage1 = [UIImage imageNamed:@"ScheduleDB.png"];
UIImage *unselectedImage1 = [UIImage imageNamed:@"ScheduleLB.png"];
UIImage *selectedImage2 = [UIImage imageNamed:@"BuildingsDB.png"];
UIImage *unselectedImage2 = [UIImage imageNamed:@"BuildingsLB.png"];
UIImage *selectedImage3 = [UIImage imageNamed:@"InformationDB.png"];
UIImage *unselectedImage3 = [UIImage imageNamed:@"InformationLB.png"];
UIImage *selectedImage4 = [UIImage imageNamed:@"MoreDB.png"];
UIImage *unselectedImage4 = [UIImage imageNamed:@"MoreLB.png"];
UITabBar *tabBar = self.tabBarController.tabBar;
tabBar.tintColor = [UIColor redColor];
UITabBarItem *item0 = [tabBar.items objectAtIndex:0];
UITabBarItem *item1 = [tabBar.items objectAtIndex:1];
UITabBarItem *item2 = [tabBar.items objectAtIndex:2];
UITabBarItem *item3 = [tabBar.items objectAtIndex:3];
UITabBarItem *item4 = [tabBar.items objectAtIndex:4];
[item0 setFinishedSelectedImage:selectedImage0 withFinishedUnselectedImage:unselectedImage0];
[item1 setFinishedSelectedImage:selectedImage1 withFinishedUnselectedImage:unselectedImage1];
[item2 setFinishedSelectedImage:selectedImage2 withFinishedUnselectedImage:unselectedImage2];
[item3 setFinishedSelectedImage:selectedImage3 withFinishedUnselectedImage:unselectedImage3];
[item4 setFinishedSelectedImage:selectedImage4 withFinishedUnselectedImage:unselectedImage4];
我的问题是当定制tabbar时,在tabbar的底部仍然有一个视图(我将颜色设置为红色)。像这样:
是否可以在不隐藏默认选项卡栏的情况下删除它,并将其替换为自定义视图?
我已经在Stackoverflow、UITabbar reference中检查了它,但仍然找不到任何方法。我想这就是您想要的,请替换您的自定义选项卡栏:
- (void)oppoHideTabBarViewController
{
if (self.tabBarViewController.tabBar.hidden == YES)
{
return;
}
UIView *contentView;
if ( [[self.tabBarViewController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
{
contentView = [self.tabBarViewController.view.subviews objectAtIndex:1];
}
else
{
contentView = [self.tabBarViewController.view.subviews objectAtIndex:0];
}
contentView.frame = CGRectMake(contentView.bounds.origin.x,
contentView.bounds.origin.y,
contentView.bounds.size.width,
contentView.bounds.size.height + self.tabBarViewController.tabBar.frame.size.height);
self.tabBarViewController.tabBar.hidden = YES;
}
- (void)oppoShowTabBarViewController
{
if (self.tabBarViewController.tabBar.hidden == NO)
{
return;
}
UIView *contentView;
if ([[self.tabBarViewController.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]])
{
contentView = [self.tabBarViewController.view.subviews objectAtIndex:1];
}
else
{
contentView = [self.tabBarViewController.view.subviews objectAtIndex:0];
}
contentView.frame = CGRectMake(contentView.bounds.origin.x,
contentView.bounds.origin.y,
contentView.bounds.size.width,
contentView.bounds.size.height - self.tabBarViewController.tabBar.frame.size.height);
self.tabBarViewController.tabBar.hidden = NO;
}
您可以尝试:
- (void)hideTabBar:(UITabBarController *) tabbarcontroller
{
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBarclass]])
{
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
}
else
{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y + 36, view.frame.size.width, 480 - 36)];
}
}
}