關(guān)于導航控制器導航欄、標簽控制器底部標簽欄的那些小事

1.首先介紹導航控制器的導航欄:

導航控制器的導航條.png
UINavigationBar繼承之UIView.png

從上面兩個圖可以看出UINavigationBar繼承之UIView 也是一個控件。
NavigaitonBar就是導航欄硬霍,位于屏幕的上方,管理整個NavigationController的navigationItem笼裳。


UINavigationItem管理導航欄的元素 .png

從上圖可以看出每個導航控制器頁面的導航欄元素由所在頁面的navigationItem管理唯卖。即設置當前頁面的左右barbutton,用 self.navigationItem.leftBarButtonItem躬柬、rightBarButtonItem拜轨。

UINavigationItem繼承之NSObject.png

UINavigationItem直接繼承之 NSObject
(包含了當前頁面導航欄上需要顯示的全部信息)如:
title,titleView,leftBarButtonItem,rightBarButtonItem,backBarButonItem等;
這些元素的類型是:UIBarButtonItem
leftBarButtonItem等元素的類型.png

UIBarButtonItem有繼承之:UIBarItem
UIBarButtonItem繼承之UIBarItem.png

UIBarItem繼承之NSObject


UIBarItem繼承之NSObject.png

所以我們可以得出一下結(jié)論:
UINavigationController 是一個viewController
UINavigationBar 是一個view
UINavigationItem 是一個NSObject
UIBarButtonItem 是一個 UIBarItem,是一種專門放在bar上的特殊button
UIBarItem是一個NSObject允青,是是各種itme的父類橄碾。

雖然storyboard和代碼里面是這樣的,但是當我們打開Xcode渲染圖時卻發(fā)現(xiàn)了,幾個奇怪的東西法牲,超出了我們預想的東西


導航條各子控件渲染圖.png

從圖中我們可以發(fā)現(xiàn) UINavigationButton 史汗、UINavigationItemView、_UINavigationBarBackround 這幾個東西拒垃,然后我們在Xcode里面寫沒有提示淹办,在幫助文檔里搜索也沒有


Snip20160822_38.png

![ ![_UINavigationBarBackround搜索結(jié)果.png](http://upload-images.jianshu.io/upload_images/2514939-33128c37f655bb4e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240) ](http://upload-images.jianshu.io/upload_images/2514939-95ca47ebc3f9f8f0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

為什么會是這樣呢?當然是因為這些事私有屬性恶复。那么怎么證明它們是私有屬性呢,或

者說它們是不是真的存在速挑,好的接下來我們就去證明它們的存在谤牡,用代碼的方式打印出來;看代碼


UINavigationButton子控件的打印方法.png

看打印結(jié)果:
UINavigationButton等的打印結(jié)果.png

通過打印結(jié)果我們可以看出姥宝,這些東西確實存在翅萤。
大家有空的話可以研究下它們有什么用,這里就不做探討了我有時間再去探討腊满。

2.接下來我們說一下 標簽控制器底部的工具欄或者說是標簽欄:
UITabBar:

UITabBar繼承之UIView.png

所以UITabBar 也是一個控件套么。
我們都知道UITabBarController下方的工具條稱為UITabBar ,如果UITabBarController有N個子控制器,那么UITabBar內(nèi)部就會有N 個UITabBarButton作為子控件與之對應碳蛋。如下圖所示:

標簽控制器的工具條UITabBar.png

我們可以在相應的子控制器中設置底部標簽欄對應的title 和 image
UITabBarButton?面顯?什么內(nèi)容,由對應子控制器的tabBarItem屬性來決定
如:

    //設置標題//    one.tabBarItem.title = @"老大";
   或者是 one.title = @"第一個控制器";

有兩種方式
但是圖片image 不能直接點出來 必須通過先點tabBarItem 然后在點image
如:

 //設置圖片(默認圖片)
    one.tabBarItem.image = [UIImage imageNamed:@"navigationbar_friendsearch"];
//設置選中圖片
    UIImage * selectImage = [UIImage imageNamed:@"navigationbar_friendsearch_highlighted"];
    //修改渲染模式    selectImage = [selectImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];   
    two.tabBarItem.selectedImage = selectImage;

具體關(guān)系如下圖:


UITabBar關(guān)系圖.png

上面我們已經(jīng)說了UITabBarButton是私有屬性胚泌,所以我猜測為了給其內(nèi)部的屬性image和title賦值,所以蘋果給我們提供了tabBarItem屬性來為其賦值肃弟;
下面我們來說一下tabBarItem玷室,即UITabBarItem 類


UITabBarItem繼承.png

UITabBarItem 繼承之UIBarItem

UIBarItem繼承.png

然而UIBarItem直接繼承之NSObject

3.最后我們來說一下工具欄UIToolbar,如鍵盤上面的工具欄

UIToolBar.png

UIToolbar繼承之UIView
創(chuàng)建工具欄:

UIToolbar * toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 0, 44)];
    toolBar.barTintColor = [UIColor redColor];
UIToolbar 內(nèi)部裝的元素的類型是 UIBarButtonItem
如:
UIBarButtonItem * cancle = [[UIBarButtonItem alloc] initWithTitle:@"取消" style:UIBarButtonItemStylePlain target:self action:@selector(cancleClick)];
//把按鈕添加到工具條上
    toolBar.items = @[cancle,flx,done];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末笤受,一起剝皮案震驚了整個濱河市穷缤,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌箩兽,老刑警劉巖津肛,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異汗贫,居然都是意外死亡身坐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門芳绩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來掀亥,“玉大人,你說我怎么就攤上這事妥色√禄ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撮竿。 經(jīng)常有香客問我吮便,道長,這世上最難降的妖魔是什么幢踏? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任髓需,我火速辦了婚禮,結(jié)果婚禮上房蝉,老公的妹妹穿的比我還像新娘僚匆。我一直安慰自己,他們只是感情好搭幻,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布咧擂。 她就那樣靜靜地躺著,像睡著了一般檀蹋。 火紅的嫁衣襯著肌膚如雪松申。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天俯逾,我揣著相機與錄音贸桶,去河邊找鬼。 笑死桌肴,一個胖子當著我的面吹牛皇筛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播识脆,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼设联,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了灼捂?” 一聲冷哼從身側(cè)響起离例,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎悉稠,沒想到半個月后宫蛆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡的猛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年耀盗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片卦尊。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡叛拷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出岂却,到底是詐尸還是另有隱情忿薇,我是刑警寧澤裙椭,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站署浩,受9級特大地震影響揉燃,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜筋栋,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一炊汤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧弊攘,春花似錦抢腐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至婿着,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間醋界,已是汗流浹背竟宋。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留形纺,地道東北人丘侠。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像逐样,于是被迫代替她去往敵國和親蜗字。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 參考文章 navigationItem UINavigationItem UINavigationBar UIBa...
    劉大帥閱讀 52,629評論 37 147
  • 前言 由于最近兩個多月脂新,筆者正和小伙伴們忙于對公司新項目的開發(fā)挪捕,筆者主要負責項目整體架構(gòu)的搭建以及功能模塊的分工。...
    CoderMikeHe閱讀 27,000評論 74 271
  • 一點說明:本文中“導航控制器”區(qū)別于“視圖控制器”存在 UINavigationController UINavi...
    WeiHing閱讀 5,043評論 0 11
  • 什么好的壞的争便、真的假的级零、對的錯的、還不如就信當下我認為對的滞乙、反正在未來是某一天我們可能都會后悔奏纪、那還不如讓我現(xiàn)在爽...
    你會怕黑嗎閱讀 209評論 0 0
  • 第一次寫,不知道寫點什么斩启,但又想記錄點屬于自己的東西序调,那我就說一下今天發(fā)生的事吧。這些話就當是說給自己聽的兔簇,因為屬...
    我眼中的小事閱讀 196評論 0 0