| 限制項 | 具體表現 | 影響場景 |
|---|---|---|
| 高度不可調 | 固定 49pt (iPhone) / 83pt (iPhone X+ 安全區),無法通過 frame 或 Auto Layout 改變 | 需更高 TabBar 容納自定義圖標、紅點、文字組合時 |
| 圖標強制渲染模板模式 | 僅使用圖片 Alpha 通道生成單色圖標(藍色選中/灰色未選),無法顯示彩色圖標 | 品牌色彩圖標、複雜插畫風格 Tab 圖標 |
| 最多顯示 5 個項目 | 超過 5 個時自動截取前 4 個 + 「更多」按鈕,第 5 個起進入 More 列表 | 功能入口超過 5 個的 App(如電商、綜合服務類) |
| 佈局極其僵化 | 項目等寬分佈,不可調整間距、邊距、圖文相對位置、文字字體大小/顏色(僅支援全局 appearance 代理) | 需置中佈局、不等寬、帶動畫指示器、L 形/浮動 TabBar 等設計 |
| 無法實現「中間凸起/懸浮」按鈕 | TabBar 為矩形容器,無法突破邊界繪製中間突出的「+」號、掃碼、發布等核心入口 | 今日頭條、微信「發現」頁、抖音底部中間大按鈕等經典交互 |
tabBar (self.tabBar.hidden = YES),在底部添加自定義 UIView 管理按鈕、指示器、動畫。控制力最強,但需手動處理選中狀態、轉場協調、安全區適配。ESTabBarController, CYLTabBarController, RAMAnimatedTabBarController):封裝好動畫、紅點、L 形、彈出菜單等豐富效果,接入成本低,維護活躍。UITabBarAppearance 微調:可修改背景圖、陰鬱、選中/未選圖標顏色、字體,**但無法突破結構性限制(高度、項目數、凸起按鈕)**。UITabBarController + UITabBarAppearance 美化,最省力。TabView 配合 .tabItem、.toolbar、.background 等修飾符,靈活度大幅提升,但跨平台一致性需測試。系統 UITabBar 設計初衷是「統一、簡潔、低開發成本」,其局限性正是為了保證 iOS 生態的一致性體驗。當產品設計超出這套規範(尤其是「中間核心入口」模式成為主流後),自定義 TabBar 成為剛需。選擇成熟開源庫可平衡開發效率與維護成本。