之前寫了一篇簡單的文章,是開始使用Tabbar的,這一篇文章還是講一些簡單的東西,不過涉及到一些概念
在使用tabbar的時候,我們必須瞭解UITabBarController結構與其各個相關類的關係(TabBarController、TabBar、TabBarItem及ViewController)
1.TabBarItem:是一個雙態的Button(選中和未選中),行爲和CheckBox、RadioButton類似。
2.TabBar:是TabBarItem的容器,負責TabBarItem的排布和互斥,保證同時只有一個Item爲選中態。(TabBar就是下圖中黑色的那一條,Item是黑色當中的一個單元)
3.TabBarController: 包含了TabBar,並管理這一個ViewController的棧,在TabBar上的按鈕點擊時對棧上的ViewController位置進行相應的調整,從而保持TabBar和ViewController棧之間的一致性。
4.ViewController :這個和TabBarController沒有任何的直接關係,他是一個單獨的視圖(view),只不過在和TabBarController結合使用的時候,是通過TabBar中得TabBarItem來管理這個ViewController。
首先借助官方文檔的一張圖來看
最右邊的那張圖,就是整個頁面(看標註的厚度)就是我們通常所說的Tabbarcontroller
最左邊的那張圖,就是我們所說的tabbar(在這裏包含了四個TabBarItem)
中間的那張圖,就是自定義內容,也就是我們需要通過TabBarItem老關聯並且控制的ViewController。
我們可以通過下面的這已小段代碼來了解
UITabBar *tab = [[UITabBar alloc]initWithFrame:CGRectMake(0, 0, 320, 50)];
[self.view addSubview:tab];
UITabBarItem * tabBarItem1 = [[UITabBarItem alloc] initWithTitle:@"1" image:[UIImage imageNamed:@"ic_reset.png"] tag:0];
UITabBarItem * tabBarItem2 = [[UITabBarItem alloc] initWithTitle:@"2" image:nil tag:1];
UITabBarItem * tabBarItem3 = [[UITabBarItem alloc] initWithTitle:@"3" image:nil tag:2];
UITabBarItem * tabBarItem4 = [[UITabBarItem alloc] initWithTitle:@"4" image:nil tag:3];
NSArray *tabBarItemArray = [[NSArray alloc] initWithObjects: tabBarItem1, tabBarItem2, tabBarItem3, tabBarItem4,nil];
[tab setItems: tabBarItemArray];
[tabBarItem1 release];
[tabBarItem2 release];
[tabBarItem3 release];
[tabBarItem4 release];
[tabBarItemArray release];
[tab release];
就得到了這樣的一個效果