iOS - TabBarController 創(chuàng)建超過5個(gè) tab 最簡(jiǎn)單方法锌介!

如何解決問題

重寫 traitCollection,就能創(chuàng)建超過5個(gè) tab猾警,并且不出現(xiàn)More tab孔祸。這種方式?jīng)]有改變UITabBarController的使用方式,入侵性最小发皿,不需要使用第三方庫(kù)崔慧。

override var traitCollection: UITraitCollection {
    let realTraits = super.traitCollection
    let lieTrait = UITraitCollection.init(horizontalSizeClass: .regular)
    return UITraitCollection(traitsFrom: [realTraits, lieTrait])
}

當(dāng)你重寫 traitCollection 并返回一個(gè)包含 .regular 水平尺寸類別的 UITraitCollection,系統(tǒng)將會(huì)認(rèn)為當(dāng)前設(shè)備的寬度足夠大穴墅,可以顯示更多的標(biāo)簽惶室。這樣即使在寬度有限的設(shè)備(如 iPhone)上,你也能顯示超過五個(gè)標(biāo)簽封救。

問答

https://stackoverflow.com/questions/10313845/can-we-add-more-than-five-tab-bar-in-ios-sdk

解釋

在iOS應(yīng)用中拇涤,默認(rèn)情況下,當(dāng)設(shè)備的尺寸類別(Size Class)為緊湊(Compact)時(shí)誉结,UITabBarController 只允許顯示最多五個(gè)標(biāo)簽(Tab)鹅士。這是因?yàn)榫o湊的尺寸類別意味著屏幕寬度有限,無法容納更多的標(biāo)簽惩坑。

通過重寫 traitCollection 屬性并將水平尺寸類別(horizontalSizeClass)強(qiáng)制設(shè)為常規(guī)(Regular)掉盅,你可以讓系統(tǒng)認(rèn)為設(shè)備有足夠的寬度來顯示更多的標(biāo)簽也拜。這會(huì)導(dǎo)致 UITabBarController 在顯示標(biāo)簽時(shí)使用適合常規(guī)尺寸類別的布局,從而允許顯示超過五個(gè)標(biāo)簽趾痘。

以下是具體解釋:
代碼詳解
override var traitCollection: UITraitCollection {
    let realTraits = super.traitCollection
    let lieTrait = UITraitCollection(horizontalSizeClass: .regular)
    return UITraitCollection(traitsFrom: [realTraits, lieTrait])
}

1慢哈、let realTraits = super.traitCollection:獲取當(dāng)前視圖控制器的實(shí)際特性集合。
2永票、let lieTrait = UITraitCollection(horizontalSizeClass: .regular):創(chuàng)建一個(gè)新的特性集合卵贱,水平尺寸類別設(shè)為 .regular。
3侣集、return UITraitCollection(traitsFrom: [realTraits, lieTrait]):合成實(shí)際特性和偽特性键俱,返回一個(gè)包含兩者的新特性集合。

結(jié)果

通過這種方式世分,UITabBarController 會(huì)認(rèn)為它有足夠的空間來顯示更多的標(biāo)簽编振,進(jìn)而允許超過五個(gè)標(biāo)簽的顯示。

使用場(chǎng)景和注意事項(xiàng)

1臭埋、使用場(chǎng)景:這種方法適用于你需要在標(biāo)簽欄中顯示超過五個(gè)標(biāo)簽踪央,并且不希望使用更多復(fù)雜的解決方案(如自定義標(biāo)簽欄)。
2瓢阴、注意事項(xiàng):強(qiáng)制修改特性集合可能會(huì)影響其他布局行為畅蹂,導(dǎo)致意外的問題。例如炫掐,其他依賴于尺寸類別的視圖和控件可能會(huì)認(rèn)為它們有更多的空間魁莉,從而影響其布局和顯示。因此募胃,使用此方法時(shí)需要進(jìn)行充分測(cè)試旗唁,確保應(yīng)用在不同設(shè)備和方向上都能正常工作。
總結(jié)來說痹束,通過重寫 traitCollection检疫,可以讓系統(tǒng)認(rèn)為設(shè)備具有更寬的尺寸,從而允許在 UITabBarController 中顯示超過五個(gè)標(biāo)簽祷嘶。然而屎媳,這種方法應(yīng)謹(jǐn)慎使用,以避免其他布局問題论巍。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末烛谊,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嘉汰,更是在濱河造成了極大的恐慌丹禀,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異双泪,居然都是意外死亡持搜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門焙矛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來葫盼,“玉大人,你說我怎么就攤上這事村斟∑兜迹” “怎么了?”我有些...
    開封第一講書人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵邓梅,是天一觀的道長(zhǎng)脱盲。 經(jīng)常有香客問我邑滨,道長(zhǎng)日缨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任掖看,我火速辦了婚禮匣距,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哎壳。我一直安慰自己毅待,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開白布归榕。 她就那樣靜靜地躺著尸红,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刹泄。 梳的紋絲不亂的頭發(fā)上外里,一...
    開封第一講書人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音特石,去河邊找鬼盅蝗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛姆蘸,可吹牛的內(nèi)容都是我干的墩莫。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼逞敷,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼狂秦!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起推捐,我...
    開封第一講書人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤裂问,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愕秫,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡慨菱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戴甩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片符喝。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖甜孤,靈堂內(nèi)的尸體忽然破棺而出协饲,到底是詐尸還是另有隱情,我是刑警寧澤缴川,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布茉稠,位于F島的核電站,受9級(jí)特大地震影響把夸,放射性物質(zhì)發(fā)生泄漏而线。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一恋日、第九天 我趴在偏房一處隱蔽的房頂上張望膀篮。 院中可真熱鬧,春花似錦岂膳、人聲如沸誓竿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)筷屡。三九已至,卻和暖如春簸喂,著一層夾襖步出監(jiān)牢的瞬間毙死,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工娘赴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留规哲,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓诽表,卻偏偏與公主長(zhǎng)得像唉锌,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子竿奏,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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