0

在我的iPhone應用程序中,我實現了一個自定義選項卡欄,該功能完美,沒有問題。但是,我遇到了一個問題:基本上我的自定義選項卡欄實際上並不控制選項卡欄視圖,它只是表示基本標準UITabBarController,它應該是setSelectedIndex:1等。它基本上只是一個可視自定義選項卡欄,沒有它背後的任何邏輯。因此,我需要隱藏底層標準UITabBar,它可以在幕後完成所有骯髒的工作。自定義選項卡欄向上滾動查看

最常見的事我已經遇到和我的朋友谷歌是人們都用這個代碼隱藏標籤欄:

for(UIView *view in tabbarcontroller.view.subviews) 
{ 
    if([view isKindOfClass:[AppTabBarController_iPhone class]]) 
    { 
     [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, view.frame.size.width, 480)]; 
    } 
} 

事實上,這確實推標籤欄剛剛淡出人們的視線,但是它在任何滾動視圖中都會帶來另一個問題:每個滾動視圖的背景圖像都會重複44個像素(即已經向下移動的標籤欄的高度),因此會造成真正難看的體驗。

是否有某種setFrame黑客我可以做這個工作,或者你有一個完全更好的方法來隱藏標籤欄,可以消除這個問題?

回答

1

只是一個想法,而不是隱藏原來的UITabBar爲什麼不用你自定義的UITabBar來覆蓋它呢?除非他們有不同的高度,否則你應該很好。

要覆蓋它,您將不得不將自定義標籤欄作爲子視圖添加到主窗口。

+0

我使用的標籤欄大約40px高,除了中間區域以外,所以您仍然會看到底層標籤欄的某些部分。如果我無法弄清楚這一點,我可能不得不把它改成44px的高點。 – 2011-12-20 21:47:01

+0

事實上,我真的是世界上最大的白癡,我忘了將我的實際scrollView的包含視圖重新調整爲436,以解釋沒有標籤欄的添加房地產。不管怎麼說,還是要謝謝你! – 2011-12-21 01:29:15

相關問題