我試圖隱藏特定視圖的標籤欄,並在觸摸屏幕時將其顯示回來。我希望它具有與YouTube類似的效果,例如當播放視頻時,播放器控件被隱藏並且屏幕被觸摸,控件再次顯示。當屏幕被觸摸時,如何隱藏特定標籤索引和標籤的iOS標籤欄?
回答
您是否試圖直接隱藏標籤欄? 在視圖控制器,你要沒有一個標籤欄,添加tabBar.hidden = YES;
到viewWillAppear:
或viewDidAppear:
扭轉這種具有觸摸釋放,內部事件觸發tabBar.hidden = NO;
我沒有親自與標籤欄做到了這一點,但是這與其他觀點一起工作,所以這是我首先嚐試的方式。
確實隱藏標籤欄,但我得到一個49像素高的白色空間在底部現在的屏幕。該視圖不會自動調整大小以填充它,並嘗試手動更改視圖框架不做任何事情。 – AndrewS
@AndrewS檢查出這個問題http://stackoverflow.com/questions/3807255/how-do-i-hid-the-uitabbarview-when-loading-some-view –
這是爲推視圖;我想要它在標籤欄中的一個選項卡。我在[如何隱藏uitabbarcontroller]中使用代碼結束了(http://stackoverflow.com/questions/5272290) – AndrewS
您可以使用此代碼來顯示和隱藏標籤欄:
@implementation UITabBarController (Extras)
-(void)showTabBar:(BOOL)show {
UITabBar* tabBar = self.tabBar;
if (show != tabBar.hidden)
return;
UIView* subview = [self.view.subviews objectAtIndex:0];
CGRect frame = subview.frame;
frame.size.height += tabBar.frame.size.height * (show ? -1 : 1);
subview.frame = frame;
tabBar.hidden = !show;
}
此代碼的工作,最近被蘋果應用程序接受,(作爲一個類別),我發現更容易比其他使用解決方案。
當你想隱藏的TabBar,只要致電:
[self.tabBarController showTabBar:NO];
同樣,再次顯示它,把這個消息YES
作爲參數。
注意:不知何故,我忘記了我過去曾經查過這段代碼,現在我不確定誰最初回答了這個問題。 Saurabh answered a similar question。 由Saurabh提供的代碼遍歷所有的視圖尋找isKindOfClass:[UITabBar class]
,而我只是抓住第一個子視圖 - 這可能是在更新面臨脆弱。
Try This Code
- (void) hideTabBar:(UITabBarController *) tabbarcontroller
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
float fHeight = screenRect.size.height;
if( UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
{
fHeight = screenRect.size.width;
}
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, fHeight, view.frame.size.width, view.frame.size.height)];
}
else
{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, fHeight)];
view.backgroundColor = [UIColor blackColor];
}
}
[UIView commitAnimations];
}
- (void) showTabBar:(UITabBarController *) tabbarcontroller
{
CGRect screenRect = [[UIScreen mainScreen] bounds];
float fHeight = screenRect.size.height - 49.0;
if( UIDeviceOrientationIsLandscape([UIApplication sharedApplication].statusBarOrientation))
{
fHeight = screenRect.size.width - 49.0;
}
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
for(UIView *view in tabbarcontroller.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
[view setFrame:CGRectMake(view.frame.origin.x, fHeight, view.frame.size.width, view.frame.size.height)];
}
else
{
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, fHeight)];
}
}
[UIView commitAnimations];
}
試試這個:
self.tabBarController.tabbar.hidden = YES;
把它放在viewDidLoad中。
- 1. 當單擊觸摸視圖時隱藏標籤欄和導航欄
- 2. 隱藏iOS中標籤欄中的標籤(Swift)
- 3. 的iOS TabbarViewController隱藏標籤欄
- 4. 我如何隱藏標籤欄上的標籤iphone
- 5. 隱藏標籤欄項目中的標籤欄控件
- 6. 隱藏標籤欄中的標籤欄應用程序
- 7. 隱藏標籤
- 8. 隱藏標籤
- 9. 隱藏標籤欄視圖可以防止觸摸
- 10. 隱藏標籤從引導
- 11. 如何隱藏標籤欄項目?
- 12. 如何隱藏iPhone標籤欄?
- 13. 如何隱藏標籤欄項目?
- 14. 隱藏導航欄和標籤欄時,UIView不會調整爲全屏幕
- 15. 當用戶在div標籤外單擊時隱藏div標籤
- 16. 顯示ABPeoplePickerNavigationController時隱藏標籤欄?
- 17. 推視圖時隱藏標籤欄
- 18. DotNetHighcharts - 隱藏特定的傳說標籤
- 19. 如何隱藏HTML標籤?
- 20. iOS自定義標籤欄
- 21. 隱藏軸標籤
- 22. 隱藏在標籤
- 23. 隱藏標籤頁
- 24. iOS - 標籤欄UIWebView
- 25. jQuery和隱藏標籤
- 26. Winform menustrip和隱藏標籤
- 27. 顯示和隱藏標籤
- 28. 標籤欄隱藏問題的android
- 29. iOS-如何用動畫隱藏/顯示UITabBarController的標籤欄?
- 30. iPhone:如何隱藏標籤欄以顯示全屏視圖
看到我對這裏的一個類似問題的回答:http://stackoverflow.com/a/9141766/91458最好, – boliva