UITabBar,UINavigationBar的布局和隐藏问题
1. 前言
UITabBar,UINavigationBar非常的好用,但是畢竟是系統(tǒng)自帶的,不受自己完全掌握,對于布局和隱藏會有一些問題,現(xiàn)在就來談談我的想法和一些問題。
2. view,UITabBar,UINavigationBar之間的關(guān)系
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
1. 如果是在storyboard下,通過segue的連線實現(xiàn)跳轉(zhuǎn),那么navigationBar會自動出現(xiàn)在屏幕里,很好做自動布局。
2. 如果通過代碼或者別的不連線的方式實現(xiàn)跳轉(zhuǎn),那么需要注意的就是做自動布局時,如果設(shè)定和view的上下邊界距離,等到運行時,實際上是和navigationBar和tabBar的上下邊界距離。
3. 整個view的高度是固定的,只和手機的型號有關(guān)。如果沒有navigationBar和tabBar, 那么中間的內(nèi)容高度就會相應地增加。
?
3. UITabBar的隱藏問題
我想很多人都遇到過UITabBar的隱藏問題,最容易的方法一般是下面兩種
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@""]; [vc setHidesBottomBarWhenPushed:YES]; //隱藏tabbar [self.navigationController pushViewController:vc animated:YES]; self.hidesBottomBarWhenPushed = YES; UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@""]; [self.navigationController pushViewController:vc animated:YES]; self.hidesBottomBarWhenPushed = NO;這兩種方法我都試了,確實能夠隱藏tabBar,大部分情況下都沒問題。
不過我遇到了一個比較奇葩的隱藏問題,就是tabBar會有留白。追本溯源,這就和前面view和tabBar的關(guān)系有關(guān)了。
我的問題:
tabBar高度49px,頁面跳轉(zhuǎn)到一個聊天頁面,最下面的聊天框也是49px。
聊天框上面就是UITableView實現(xiàn)的聊天界面,設(shè)定UITableView到View的bottom間距為49px。
但是實際運行時,系統(tǒng)會認為是UITableView到TabBar的間距為49px,這就會出現(xiàn)下面的問題:
? ? ? ? ? ? ? ? ? ? ? ? ?
即使設(shè)定了UITabBar隱藏,但是系統(tǒng)運行時還是會出現(xiàn)留白,不過一閃而過就沒了。如果設(shè)定到view的bottom間距為0px,留白沒有了,但是聊天框占據(jù)了49px,聊天的最后一行拉不到,很奇葩的問題。
原因:我的感覺就是即使UITabBar隱藏了,系統(tǒng)到運行的時候,聊天頁面都viewDidAppear時,還是認為49px的間距是到已經(jīng)隱藏的UITabBar上的。
?
4. 解決方法
最后的解決方法是,設(shè)置間距為0px,等到viewDidAppear時設(shè)置間距為49px
-(void)viewDidAppear:(BOOL)animated {[super viewDidAppear:YES];self.bottomSpace.constant = 49; //解決了留白問題 }轉(zhuǎn)載于:https://www.cnblogs.com/chenliyang/p/6554375.html
總結(jié)
以上是生活随笔為你收集整理的UITabBar,UINavigationBar的布局和隐藏问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: easyui使用时出现这个Uncaugh
- 下一篇: POJ 1017 Packets【贪心】
