Tab Bar — چیست، پنل تب‌ها در اپلیکیشن‌های موبایل

نویسنده: IT Sectr منتشر شده: 2026-02-22 زمان مطالعه: 12 دقیقه

Tab Bar — عنصر ناوبری در پایین صفحه اپلیکیشن موبایل که دسترسی سریع به بخش‌های اصلی را فراهم می‌کند. در iOS از طریق UITabBarController و در Android از طریق BottomNavigationView Material Design پیاده‌سازی می‌شود. درباره اصول ناوبری بیشتر در Human Interface Guidelines Apple بخوانید.

نکات اصلی

  • Tab Bar — پنل ناوبری پایین برای جابجایی بین ۳–۵ بخش اصلی اپلیکیشن
  • UITabBarController — کامپوننت استاندارد iOS برای مدیریت تب‌ها با ظاهر سیستمی
  • BottomNavigationView — کامپوننت Android از Material Design Library برای ناوبری پایین
  • نشان‌ها — نشانگرهای عددی روی آیکون تب‌ها برای نمایش اعلان‌ها
  • سفارشی‌سازی — آیکون‌ها، رنگ‌ها، فونت‌ها و انیمیشن‌های جابجایی از طریق API پلتفرم تنظیم می‌شوند

Tab Bar چیست؟

Tab Bar (پنل تب‌ها) — عنصری از رابط گرافیکی در پایین صفحه اپلیکیشن موبایل. دسترسی سریع به ۳–۵ بخش اصلی اپلیکیشن را فراهم می‌کند. هر بخش با یک آیکون و برچسب متنی نمایش داده می‌شود. کاربر روی تب کلیک می‌کند تا به بخش مربوطه برود. Tab Bar در تمام صفحات هر بخش قابل مشاهده می‌ماند و یک نقطه ورود دائمی فراهم می‌کند.

Apple استفاده از Tab Bar را برای بخش‌های اپلیکیشن با سطح اهمیت برابر توصیه می‌کند. Human Interface Guidelines (2026) اشاره می‌کند: «Tab Bar ۳–۵ تب را نشان می‌دهد. اگر بیشتر نیاز باشد — آخرین تب به گزینه «بیشتر» با بقیه در داخل تبدیل می‌شود». Material Design Google (2026) Bottom Navigation را برای همین اهداف توصیه می‌کند — ۳–۵ گزینه، تب فعال با رنگ و انیمیشن برجسته می‌شود.

بر خلاف تب‌های بالایی (Top Tab Bar)، پنل پایین برای استفاده با یک دست راحت‌تر است — انگشت شست به طور طبیعی به پایین صفحه می‌رسد. تحقیقات Nielsen Norman Group (2025) نشان داد که ناوبری پایین زمان انجام کار را در مقایسه با ناوبری بالایی در گوشی‌های هوشمند با قطر ۶ اینچ به بالا ۲۲٪ کاهش می‌دهد.

UITabBarController در iOS

UITabBarController — کنترلر داخلی iOS برای سازماندهی ناوبری از طریق تب‌ها. هر تب مجموعه صفحات خود را که معمولاً در UINavigationController سازماندهی شده‌اند مدیریت می‌کند. UITabBarController به طور خودکار Tab Bar را در پایین صفحه با پس‌زمینه نیمه‌شفاف سیستمی و انیمیشن در هنگام جابجایی ایجاد می‌کند.

swift
import UIKit

class MainTabBarController: UITabBarController {

    override func viewDidLoad() {
        super.viewDidLoad()

        let homeVC = HomeViewController()
        let searchVC = SearchViewController()
        let profileVC = ProfileViewController()

        homeVC.tabBarItem = UITabBarItem(
            title: "خانه",
            image: UIImage(systemName: "house.fill"),
            tag: 0
        )
        searchVC.tabBarItem = UITabBarItem(
            title: "جستجو",
            image: UIImage(systemName: "magnifyingglass"),
            tag: 1
        )
        profileVC.tabBarItem = UITabBarItem(
            title: "پروفایل",
            image: UIImage(systemName: "person.circle.fill"),
            tag: 2
        )

        let homeNav = UINavigationController(rootViewController: homeVC)
        let searchNav = UINavigationController(rootViewController: searchVC)
        let profileNav = UINavigationController(rootViewController: profileVC)

        viewControllers = [homeNav, searchNav, profileNav]
    }
}

هر تب در مثال شامل UINavigationController است که امکان استفاده از ناوبری پشته‌ای را در داخل بخش فراهم می‌کند. tabBarItem آیکون، عنوان و نشان را تنظیم می‌کند. سیستم به طور خودکار سبک SF Symbols را برای آیکون‌ها اعمال می‌کند — نمادهای استاندارد Apple با پشتیبانی از نوع پویا و چندرنگی.

BottomNavigationView در Android

BottomNavigationView — کامپوننت Android از Material Design Library که پنل ناوبری پایین را پیاده‌سازی می‌کند. در Android 13+ از NavigationBarView استفاده می‌شود — جانشین آن با انیمیشن بهبودیافته و رفتار تطبیقی. BottomNavigationView از مشخصات Material Design 3 (Material You) پیروی می‌کند و از تم اپلیکیشن، رنگ‌های پویا و انیمیشن در هنگام جابجایی پشتیبانی می‌کند.

kotlin
class MainActivity : AppCompatActivity() {

    private lateinit var binding: ActivityMainBinding

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        val navView: NavigationBarView = binding.navView
        val navController = findNavController(R.id.nav_host_fragment)

        // اتصال BottomNavigation به NavController
        navView.setupWithNavController(navController)

        // تنظیم نشان در تب اعلان‌ها
        val badge = navView.getOrCreateBadge(R.id.navigation_notifications)
        badge.isVisible = true
        badge.number = 12
    }
}

کامپوننت BottomNavigationView از Material Design 3 با سه سبک پشتیبانی می‌کند: default (برچسب + آیکون)، labeled (برچسب بزرگ‌شده) و unlabeled (فقط آیکون). متد setupWithNavController پنل را به Navigation Component متصل می‌کند و به طور خودکار تب فعال را هنگام تغییر صفحه به‌روزرسانی می‌کند. نشان‌ها از طریق getOrCreateBadge ایجاد می‌شوند و از نشانگرهای عددی و نقطه‌ای پشتیبانی می‌کنند.

نشان‌ها و نشانگرهای Tab Bar

نشان‌ها — نشانگرهای عددی یا نقطه‌ای روی آیکون تب‌ها که تعداد اعلان‌ها، پیام‌های جدید یا وظایف را نمایش می‌دهند. در iOS نشان از طریق ویژگی badgeValue روی UITabBarItem تنظیم می‌شود. در Android نشان‌ها از طریق BadgeDrawable (Material 3) یا getOrCreateBadge در NavigationBarView مدیریت می‌شوند.

نشان‌ها ابزار قدرتمندی برای جذب هستند: تحقیقات Localytics (2025) نشان داد که اپلیکیشن‌های دارای نشان retention را در روز هفتم ۱۸٪ افزایش می‌دهند. اما استفاده بیش از حد از نشان‌ها (بیش از ۳ نشان همزمان) CTR را ۱۲٪ کاهش می‌دهد. Apple و Google توصیه می‌کنند نشان را فقط برای اعلان‌های مرتبط نشان دهید و پس از باز کردن بخش آن را بازنشانی کنید.

پلتفرمکامپوننتتنظیم نشان
iOSUITabBarItem.badgeValuetabBarItem.badgeValue = "5"
AndroidBadgeDrawablebadge.number = 5
iOSنشان نقطه‌ایtabBarItem.badgeColor = .red
Androidنشانگر نقطه‌ایbadge.isVisible = true

سفارشی‌سازی Tab Bar: آیکون‌ها، رنگ‌ها، انیمیشن‌ها

هر دو پلتفرم امکانات گسترده‌ای برای سفارشی‌سازی Tab Bar ارائه می‌دهند. در iOS می‌توان رنگ پس‌زمینه، رنگ tint تب فعال، فونت برچسب را تغییر داد و آیکون‌های سفارشی از طریق SF Symbols یا منابع خود اضافه کرد. در Android سفارشی‌سازی شامل استایل‌های Material 3، انیمیشن جابجایی، اثر ripple و رنگ‌های پویا بر اساس کاغذدیواره است.

swift
// سفارشی‌سازی Tab Bar در iOS
let appearance = UITabBarAppearance()
appearance.backgroundColor = .systemBackground
appearance.stackedLayoutAppearance.normal.titleTextAttributes = [
    .foregroundColor: UIColor.secondaryLabel,
    .font: UIFont.systemFont(ofSize: 11)
]
appearance.stackedLayoutAppearance.selected.titleTextAttributes = [
    .foregroundColor: UIColor.systemBlue,
    .font: UIFont.boldSystemFont(ofSize: 12)
]
tabBar.standardAppearance = appearance.

در Android سفارشی‌سازی BottomNavigationView از طریق ویژگی‌های XML یا برنامه‌نویسی انجام می‌شود. Material 3 مفهوم رنگ‌های پویا را معرفی می‌کند: پالت از کاغذدیواره کاربر تولید شده و به طور خودکار به کامپوننت‌ها اعمال می‌شود. توسعه‌دهنده می‌تواند رنگ‌ها را از طریق تم بازنویسی کند، انیمیشن زیرخط (indicator) سفارشی تنظیم کند و اثر ripple را پیکربندی کند.

kotlin
// سفارشی‌سازی BottomNavigationView در Android
val navView = findViewById<NavigationBarView>(R.id.nav_view)

with (navView) {
    labelVisibilityMode = NavigationBarView.LABEL_VISIBILITY_LABELED
    itemActiveIndicatorStyle = R.style.CustomIndicator
    itemRippleColor = ColorStateList.valueOf(
        Color.valueOf("#FFE0B2")
    )
}

// در XML: app:menu="@menu/bottom_nav_menu"
// در XML: app:itemActiveIndicatorStyle="@style/Widget.Material3.BottomNavigationView.ActiveIndicator"

بهترین روش‌های ناوبری پایین

هنگام طراحی Tab Bar رعایت توصیه‌های پلتفرم و تحقیقات کاربرپسندی مهم است. Apple HIG: حداکثر ۵ تب، متن مختصر، آیکون‌های معنایی. Material Design: ۳–۵ گزینه، گزینه فعال برجسته شده، شمارنده نشان حداکثر ۹۹. NN Group (2025): ناوبری پایین باید در تمام صفحات بخش قابل مشاهده باشد، در غیر این صورت کاربر زمینه را از دست می‌دهد.

اشتباهات اصلی: ۶+ تب (مجبور به استفاده از «بیشتر» — کاهش قابلیت کشف)، تغییر ترتیب تب‌ها در هنگام ناوبری (گیج‌کننده)، پنهان کردن Tab Bar در صفحات تو در تو (از دست دادن لنگر ناوبری). بهترین روش — ترتیب ثابت، آیکون‌ها و برچسب‌های متنی یکسان، نشان فقط برای اقدامات کاربر (نه برای بازاریابی).

  • ۳–۵ تب — تعداد بهینه برای انتخاب سریع بدون بار اضافی
  • ترتیب ثابت — تب‌ها باید پایدار باشند، بدون جابجایی پویا
  • آیکون + برچسب — هر دو عنصر برای درک بخش ضروری هستند
  • تب فعال — باید از نظر بصری با رنگ، آیکون یا انیمیشن متفاوت باشد
  • نشان‌ها — برای اعلان‌ها استفاده کنید، هنگام باز کردن بخش بازنشانی کنید

سؤالات متداول

Tab Bar باید چند تب داشته باشد؟

Apple و Google ۳–۵ تب را توصیه می‌کنند. کمتر از سه — بخش‌های کافی برای توجیه پنل پایین وجود ندارد. بیشتر از پنج — بار اضافی توجه، آخرین تب به گزینه «بیشتر» تبدیل می‌شود. تعداد بهینه طبق داده‌های NN Group (2025) — ۴ تب.

تفاوت بین Tab Bar و Bottom Navigation چیست؟

Tab Bar — اصطلاح Apple برای پنل پایین iOS (UITabBarController). Bottom Navigation — مشابه آن در Android (BottomNavigationView). از نظر عملکردی یکسان هستند: دسترسی سریع به ۳–۵ بخش. تفاوت در سبک بصری: iOS — پس‌زمینه نیمه‌شفاف با blur، Android — رنگ ثابت با اثر ripple.

آیا می‌توان Tab Bar را در برخی صفحات مخفی کرد؟

بله، اما با احتیاط. در iOS — hidesBottomBarWhenPushed = true روی UIViewController. در Android — View.GONE روی BottomNavigationView. بهترین روش — فقط در صفحات تمام‌صفحه (مشاهده عکس، ویدیو) مخفی کنید، اما هنگام بازگشت نمایش دهید. مخفی‌سازی طولانی کاربر را سردرگم می‌کند.

چگونه به تب Tab Bar نشان اضافه کنیم؟

در iOS tabBarItem.badgeValue = "N" (به عنوان رشته) تنظیم کنید. در Android از getOrCreateBadge(resId) روی NavigationBarView استفاده کنید. نشان به طور خودکار به صورت دایره قرمز با عدد نمایش داده می‌شود. بازنشانی: badgeValue = nil (iOS)، removeBadge(resId) یا badge.isVisible = false (Android).

چرا Tab Bar در iPhone X+ مخفی می‌شود؟

در دستگاه‌های دارای Home Indicator (iPhone X و جدیدتر) Tab Bar به طور خودکار بالای نشانگر قرار می‌گیرد. سیستم Safe Area Insets را به پایین صفحه اضافه می‌کند. توسعه‌دهنده نیازی به تنظیم دستی فاصله‌ها ندارد — UIKit و Android SystemUI به طور خودکار این کار را انجام می‌دهند.

خلاصه

  • Tab Bar — پنل ناوبری پایین برای ۳–۵ تب، عنصر استاندارد iOS و Android
  • UITabBarController (iOS) و BottomNavigationView (Android) — پیاده‌سازی‌های پلتفرمی
  • نشان‌ها — نشانگرهای عددی روی تب‌ها برای اعلان‌ها، retention را ۱۸٪ افزایش می‌دهند
  • سفارشی‌سازی شامل رنگ‌ها، آیکون‌ها، فونت‌ها و انیمیشن جابجایی در هر دو پلتفرم است
  • بهترین روش‌ها — ترتیب ثابت، آیکون + برچسب، ۳–۵ تب، قابلیت مشاهده در تمام صفحات
  • Tab Bar + Navigation — هر تب معمولاً شامل یک ناوبر پشته‌ای برای صفحات تو در تو است
  • Safe Area — پنل پایین به طور خودکار با Home Indicator در دستگاه‌های بدون حاشیه تطبیق می‌یابد

ما یک اپلیکیشن موبایل به صورت کلید در دست توسعه خواهیم داد

IT Sectr از سال 2017 برنامه‌های iOS و Android را برای استارتاپ‌ها و کسب‌وکارها ایجاد می‌کند. ما به شما مشاوره می‌دهیم و بهترین راه‌حل را پیشنهاد خواهیم کرد.

بحث درباره پروژه

همچنین بخوانید