iOS 隱藏系統的tabbar後,tabbar所在frame區域不可點選問題
系統自帶的UITabBarController有時候到不到要求,需要自定義樣式。
有一種方法就是在TabBar上面在放一層自己的,正好把原來的遮住。
那麼,從Tab進入子的Controller想要隱藏TabBar怎麼辦呢?
假如說你是用 TabBar + Navigation來做的,從第一個Tab——TabBar1進入子Controller(稱作A),
邏輯很簡單,就是從TabBar1點選進入A,
你需要在TabBar1點選事件(A顯示之前)加上
self.hidesBottomBarWhenPushed = YES;
然後在A的viewWillAppear中把你自己自定義,也就是覆蓋在系統TabBar上面的東西隱藏;
在viewWillDisappear中再將其顯示就可以了。
示例程式碼如下:
點選事件:
TabNoticeController *vc = [[TabNoticeController alloc] init];
self.hidesBottomBarWhenPushed = YES;
[self.navigationController pushViewController:vc animated:YES];
A中的程式碼:
- (void)viewWillAppear:(BOOL)animated {
[xxxTabBar setTabBarHidden:YES];
}
- (void)viewWillDisappear:(BOOL)animated {
[xxxTabBar setTabBarHidden:NO];
}
// 隱藏tabar的時候,有兩種方法,一種是在壓棧前,設定 hidesBottomBarWhenPushed 為 YES
另一種是用程式碼實現效果 - (void)viewWillAppear:(BOOL)animated {[super viewWillAppear:animated];
[selfhideTabBar:YES];//隱藏tabbar
}
- (void)viewWillDisappear:(BOOL
[super viewWillDisappear:animated];
[selfhideTabBar:NO];//顯示tabbar
}
實現方法如下:
- (void) hideTabBar:(BOOL) hidden {
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0];
for(UIView *view in self.tabBarController.view.subviews)
{
if([view isKindOfClass:[UITabBar class]])
{
if (hidden) {
[view setFrame:CGRectMake(view.frame.origin.x, 480, view.frame.size.width, view.frame.size.height)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, 480-49, view.frame.size.width, view.frame.size.height)];
}
}
else
{
if (hidden) {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480)];
} else {
[view setFrame:CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width, 480-49)];
}
}
}
[UIView commitAnimations];
}
其中 480 根據情況設定,我這裡連 UINavigationBar 也隱藏了
相關推薦
iOS 隱藏系統的tabbar後,tabbar所在frame區域不可點選問題
系統自帶的UITabBarController有時候到不到要求,需要自定義樣式。 有一種方法就是在TabBar上面在放一層自己的,正好把原來的遮住。 那麼,從Tab進入子的Controller想要隱藏TabBar怎麼辦呢? 假如說你是用 TabBar + Navigatio
自定義的tabbar在跳轉之後隱藏tabbar後,tabbar原來的位置不能響應點選事件,這樣解決
yourInnerViewController.hidesBottomBarWhenPushed = YES; [self.navigationController pushViewControlle
iOS 隱藏導航欄後,UITableView向下偏移狀態列高度 筆記
解決辦法 if (@available(iOS 11.0, *)) { self.tableView.contentInsetAdjustmentBehavior = UIScrollViewContentInsetAdjustmentNever; } else {
iOS 隱藏導航欄後,UITableView向下偏移狀態列高度 筆記
解決辦法 if (@available(iOS 11.0, *)) { self.tableView.contentInsetAdjustmentBehavior = UIScrollViewC
MFC彈出選單欄後,滑鼠左右鍵都能點選問題
問題描述:彈出選單欄後,滑鼠左鍵以及右鍵都能點選選單欄中的專案? 解決辦法:檢查自己載入選單欄的程式, TPM_LEFTBUTTON定義為智慧滑鼠左鍵選擇,而另一個則可以滑鼠左右鍵同時選擇選單欄專案;
iOS 刪除系統自帶的tabbar
一、刪除系統自帶的tabbar 在開發中,我們時常會需要自己定義tabbar,使用自定義tabbar時,返回或者跳轉時會遇到tabbar重影的現象,這個時候我們需要將系統的tabbar //
記錄一下 呼叫系統相簿後,重新整理相簿方法
三種方法,重新整理 Android 的 MediaStore!讓你儲存的圖片立即出現在相簿裡! //拍照完成 //第一種方法 // val absolutePath = mMediaStoreUtils.getCurrentAbs
Android中在app被系統釋放後,重新回到前臺時,重建Activity出現Fragment重疊現象
android 開發中Frgment應用場景非常廣泛,應用Fragment是必須使用FragmentActivity,有時候會出現這樣一種情況,在應用退到後臺後,系統會在記憶體不足時將應用回收掉,再次啟動應用會出現Activity中的Fragment重疊現象,其實出現問題的原因是這樣的,
問題:windows---筆記本外接顯示器,在系統更新後,外接顯示器沒有反應,右鍵開啟顯示設定,點選檢測後提示未檢測到其他顯示器
由於系統更新後,驅動程式也更新了,所以需要重新設定驅動來解決這個問題。 1.可以下載一個驅動精靈來檢測一下是否有未升級的顯示卡驅動,重新升級後,再重新啟動系統。 2.下載好了驅動也沒有改變的話就點選快捷鍵Windows+ X 進入裝置管理器頁面 顯示介面卡的位置會有一個帶有----
linux 系統中系統關機後,mysql啟動失敗報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '
自己在阿里雲伺服器上安裝好執行環境後,mysql都是正常使用的,昨天強制關閉伺服器後,重新啟動伺服器,發現數據庫無法啟動報錯:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/va
Ubuntu系統崩潰後,恢復我的ROS
一天下午,睡醒後,移動滑鼠,敲鍵盤ctrl鍵,不停按其它按鍵,黑屏。關電源鍵,再開機,搜一下什麼問題吧!找到問題好像是電源管理問題,裝東西吧,複製,安裝,終端卡住了。再關機重啟,一切如常,但螢幕一黑不再有桌面介面出現了。 然後就是進recovery系統,但所有的解決方案都是
遠端伺服器系統升級後,使用SSH登陸不上。報錯為Host key verification failed.
主要原因是:系統升級後會重新生成一份主機金鑰,然而自己的機子中儲存的確是之前的金鑰,與遠端主機發送RSA金鑰的指紋不同。所以將自己機子中的金鑰刪除即可。 報錯如下: 1.刪除known_host
11g R2 節點系統重建後,刪除節點及新增節點 過程和問題解決
故障現象: http://www.santongit.com/thread-12327-1-1.html 一個RAC資料庫,兩個節點,RedHat 6.3_X64的系統,因為業務問題,節點2的伺服器的系統進行了重灌。 現需要重建節點2
APP在後臺被系統回收後,如何重新啟動
問題: app執行在後臺,android系統會在記憶體不夠用的時候,回收app,如果app中有全域性的變數,那麼再次開啟app可能會出現崩潰的情況。 示例: 示例原始碼 public class MyApplication extends App
win10系統更新後,chrome瀏覽器字型亂碼解決辦法
今天早上一開機電腦就開始自動更新,我想要說明的是起初win8 和win7都沒有自動更新這個弊病,只有你點選自動更新才會更新,而win10會在你關機以後自動的就給你更新系統了。而更新完系統帶來的一些列的問題就比較棘手,所以這裡解決一下更新完系統瀏覽器亂碼的問題。 更新完系統亂
iOS 9系統策略更新,微信分享無法使用解決辦法
近期蘋果公司iOS 9系統策略更新,限制了http協議的訪問,此外應用需要在“Info.plist”中將要使用的URL Schemes列為白名單,才可正常檢查其他應用是否安裝。受此影響,當你的應用在iOS 9中需要使用微信SDK的相關能力(分享、收藏、支付、登入等)時,需
系統調優,你所不知道的TIME_WAIT和CLOSE_WAIT
http://mp.weixin.qq.com/s?__biz=MzA3MzYwNjQ3NA==&mid=403319808&idx=1&sn=ddae082f5b844d040b9ab23c9c0eb778&scene=23&srcid=0311hhv2oaIbIdk
Mac系統升級後,按大小寫鍵沒反應了,切換大小寫的燈不亮了
今天把Mac系統升級了,升級後發現caps lock 鎖定大小寫的鍵,失靈了,居然可以用來切換輸入法了,經過一排查後, 使用以下幾種方法處理: 方式一:長按 caps lock 鍵,來切換大小寫 方式二:caps lock + shift , 來切換大小寫
Android 切換系統語言後,重啟App
問題描述:App->改變系統語言->重進App後,最近的Activity會走onCreate()方法,然後App被殺掉;直到第二次進入App後,App會重啟 解決方案:App->改變系統語言->重進App後,最近的Activity走到onCreate
樹莓派視窗系統啟動後,自動執行自定義的程式的實現方法
視窗系統啟動後,自動執行自定義的程式的實現方法進入當前使用者HOME目錄下的.config目錄(這是一個隱藏目錄,需用ls -a顯示出來)cd ~/.config 當前使用者是pi, 其HOME目錄是/home/pi, 上述命令相當於 cd /home/pi/.config建