我现在花了3个小时,这让我非常恼火。 我需要隐藏某些视图的tabbar并将其恢复给其他人。 我一直在尝试
self.hidesBottomBarWhenPushed = TRUE;
没有成功。 (因为有些观点我必须POP
离开屏幕,而且只适用于PUSH及其即使它看起来似乎没有正常工作)
所以我想知道我是否可以以某种方式将标签栏的“框架”移动到屏幕视图下方,然后在需要时将其重新启动,即使动画也不错?
答案 0 :(得分:0)
答案可能更令人恼火。如果你在讨论tabbarcontroller拥有的tabbar你不能。有一些技巧你可以移动它,但不幸的是视图没有正确调整大小。唯一的方法是使用tabbar delegate ptotocol创建自己的类似tabbarcontroller。也许在ios5中他们改变了一些东西,但是当我在ios4中尝试时,我发现了更快的创建我自己的标签栏控制器。
答案 1 :(得分:0)
使用此代码
- (void) hidetabbar {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in appDelegate.objtabbar.view.subviews)
{
NSLog(@"%@", view);
if([view isKindOfClass:[UITabBar class]]||[view isKindOfClass:[UIButton class]]||[view isKindOfClass:[UIImageView class]])
{
if (hiddenTabBar) {
[view setFrame:CGRectMake(view.frame.origin.x, 431, view.frame.size.width, view.frame.size.height)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
}
} else {
if (hiddenTabBar) {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 431)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
}
}
}
[UIView commitAnimations];
hiddenTabBar = !hiddenTabBar;
}