2012-07-21 66 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時將按鈕添加到視圖中(因此您將有兩個覆蓋按鈕)。當顯示標籤欄時,隱藏您使用視圖上的隱藏屬性添加到視圖的按鈕。

相關問題