什么是TabBarController
tabbar,通常情況下用來下面互相切換ViewControllers。使用方式有幾種,其中最常見的就是指定tabArray,里面按著順序存放controllers對象做為下面切換。這種操作可以放在AppDelegate里面,最終,加入window上。
深入理解TabBarController
本人曾嘗試把TabBarController,tabbar的hidden=YES,之后發(fā)現(xiàn)下面黑色的tabbar沒有了,但是會(huì)有白色的東西覆蓋在上面。background Color 設(shè)置為clear都不行。 后來發(fā)現(xiàn)tabbar的現(xiàn)實(shí)內(nèi)容的地方,設(shè)置的高度小了。所以導(dǎo)致看起來是白色的。后來把內(nèi)容部分拉長,tabbar雖然還在下面那個(gè)位置,但是 hidden之后,就不會(huì)有那個(gè)白色的效果了。
if ( [[self.view.subviews objectAtIndex:0] isKindOfClass:[UITabBar class]] )
contentView = [self.view.subviews objectAtIndex:1];
else
contentView = [self.view.subviews objectAtIndex:0];
得到內(nèi)容view
。 如何自定義TabBarController
1。第一種方式是完全重寫TabBarController,使用view來代替,上面都是button,工作量非常大,有一點(diǎn)就是各個(gè)層級(jí)之間的切換無法弄的太透徹。什么時(shí)候在上面,下面,什么時(shí)候隱藏。
2。第二種是繼承一個(gè)UItabbarController,然后在這個(gè)子類的上層加一個(gè)View。這個(gè)的好處在于切換直接通過hide的tabbar進(jìn)行中轉(zhuǎn)就行了。
中轉(zhuǎn)函數(shù)。- (void)switchView:(id)sender
{ int index = [self.subviews indexOfObject:sender];
tabbarctrl.selectedIndex = index;
}
最后,當(dāng)我們需要badgeVale,別忘了去320找找好用的。
更多信息請查看IT技術(shù)專欄