2012-07-21 65 views
8

我试图在我的应用程序中实现可隐藏的UITabBar。我制作了所有的动画,并且效果很好。我只是遇到了一个问题,让我的UIButton“pull-tab”显示标签栏。它不响应触摸事件UIControlEventTouchUpInside。 我拉选项卡添加到UITabBar中的UITabBarController:将UIButton作为子视图添加到UITabBar

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
//Add pull 
    pullButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    UIImage *image = [UIImage imageNamed:@"TabBarPull.png"]; 
    pullButton.frame = CGRectMake(self.tabBar.frame.size.width - image.size.width, -image.size.height + 3, image.size.width, image.size.height); 
    [pullButton setImage:image forState:UIControlStateNormal]; 
    [pullButton addTarget:self action:@selector(pullBarTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    pullButton.userInteractionEnabled = YES; 
    [self.tabBar addSubview:pullButton]; 
} 

这里是标签栏的样子打开和关闭:

TabBar not hidden TabBar Hidden

编辑:我确定问题是因为按钮超出了UITabBar的框架。看起来我将不得不把按钮放在UITabBar之外...动画噩梦。

+0

那么,它可能是你可以继承UITabBar,弄清楚如何让你的子类用于UITabBarController(它的子类),然后在你的UITabBar子类中创建一个更大的框架,让UITabbar使用它的正常框架,但现在你的子类应该得到所有的水龙头等。如果是我,我会首先尝试在演示项目中执行UITabBar子类,只有当这些作品试图让它与所有其他机器一起工作时。祝你好运! – 2012-07-21 02:17:59

+0

@Brandon Mcq嘿,我期待着同样的事情 - 你有没有想出一个好的解决方案?谢谢! – RyanG 2012-12-17 21:09:16

+0

@Brandon Mcq刚刚看到你的github,看看这个谢谢! – RyanG 2012-12-17 21:21:39

回答

12

您仍可以添加UIButtonUITabBarController的主要观点,而不是在UITabBar虽然.... [myUITabBarController.view addSubview:pullButton]

+4

这工作,谢谢。我创建了一个示例项目并将其放在github上。 [链接](http://github.com/Marxon13/HideableTabBar) – 2012-07-21 16:03:18

0

既然你隐藏部分UITabbar内,并从我在这里看到了答案工作,另一种方法是将UIButton保留在UITabbar中,但在隐藏UITabbar时将按钮添加到视图中(因此您将有两个覆盖按钮)。当显示标签栏时,隐藏您使用视图上的隐藏属性添加到视图的按钮。

相关问题