UITabBarController的使用心得

2021-06-21 01:52:40 字數 1954 閱讀 7615

這段時間了解下uitabbarcontroller,今天把我遇到的問題和心得記錄下。

網上有很多uitabbarcontroller的資料,對於一些uitabbarcontroller的基礎性知識,在這裡我就不囉嗦了。可以看這裡(今天我要說的是自己的一些不同於網上的的心得。

官方的一副還是要貼出來。

我也按網上的方式做了乙個uitabbarcontroller的demo。如下圖

它的具體**為:

- (void)viewdidload

執行完上面**發現以下幾個問題:

1.tabbar的背景色不對;

2.item的標題位置不對,字型太小了;

3.tab bar的位置不對,不一定在底部吧。

4.tab bar的高度不一定固定48這個高度的吧。

等等的需要處理的問題的。

第乙個問題首先要理解custom content和tab bar的實際區域:圖一很清楚的描述了乙個utabbarcontroller包含了三部分。但是custom content和tab bar的範圍是怎麼樣的呢?我開始一直以為custom content不包括tab bar的範圍,即cgrectmake(0,0,320,480)的 uitabbarcontroller檢視,custom content就為432p大小,tab bar為48p(這個高度還待驗證)。而實際情況是:custom content 為480p,tabbar只是覆蓋在custom content上。如果tabbar沒有設定背景顏色或背景就會顯示custon conten檢視的顏色。

[_tabbar.tabbar setbackgroundcolor:[uicolor redcolor]]; 

[_tabbar.tabbar setbackgroundimage:[uiimage imagenamed:@"bottombk.png"]];

uioffset offset;

offset.horizontal = 0.0;

offset.vertical = -15.0;

[item settitlepositionadjustment:offset];

[item release];

處理問題3:調整tab bar的位置

_tabbar.tabbar.frame = cgrectmake(0, 50, self.view.bounds.size.width, 200);

就是y為50的,高度為200的區域內了。

還有幾個未處理好的問題:

1.tab bar的項(item)加入的大於tab bar的高度的話,沒有辦法調整了。

uitabbaritem*item = [[uitabbaritemalloc]initwithtitle:

@"asdfas"

image:[uiimageimagenamed:

@"[email protected]"

]selectedimage:[uiimageimagenamed:

@"[email protected]"

]];

self

.tabbaritem= item;

以上的**執行的結果:

只能修改的大小了。

2.tabe bar的高度修改不了。

總結:鑑於uitabbarcontroller提供開放的介面有限,有些地方欠缺完美處理,這個也是uitabbarcontroller的不足之處,不過目前它能滿足我們的大部分需求了。在使用的時候注意custom content和tab bar 。很好的使用屬性tabbar。

UITabBarController的實現方法

2 新建三個file,都繼承uiviewcontroller,分別取名為firstviewcontroller,secondviewcontroller,thirdviewcontroller。且都帶有xib檔案,三個xib檔案的背景分別設定為黃色 墨綠色 紅色 3 新建乙個file,繼承uitab...

UITabBarController的使用步驟

初始化 uitabbarcontroller 設定uiwindow的rootviewcontroller為 uitabbarcontroller 根據具體情況,通過addchildviewcontroller方法新增對應個數的子控制器 uitabbarcontroller新增控制器的方式有2種 新增...

apache的RewriteMap使用心得

在apache的環境下,rewrite還真是生活之友啊,時不時就得用上。前些日子有個需求,要將url重新轉一轉。原來的url 轉換後的url 需要把粗體部分的url進行urlencode,能看出上面的字元 都分別轉義過,作為引數發給另外乙個url。那麼這時候請出rewrite還真是最合適不過了。查查...