3D Touch: چیست، فناوری‌های Force Touch و Haptic Touch

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

3D Touch — فناوری سخت‌افزاری اپل که نیروی فشار روی نمایشگر iPhone را تشخیص می‌دهد، و جایگزین نرم‌افزاری آن Haptic Touch که بر اساس مدت زمان لمس کار می‌کند. 3D Touch از حسگرهای فشار کالیبره‌شده نصب‌شده در زیر ماتریس صفحه‌نمایش (Force Touch) استفاده می‌کند و امکان تشخیص فشار سبک (peek) از فشار عمیق (pop) را فراهم می‌کند. از iOS 13 به بعد، اپل 3D Touch را با Haptic Touch جایگزین کرد — فناوری که فشار قوی را از طریق Long Press با بازخورد لمسی شبیه‌سازی می‌کند UIContextMenuInteraction.

نکات اصلی

  • نیروی فشار — 3D Touch فشار را بر حسب گرم اندازه‌گیری می‌کند؛ Haptic Touch از زمان نگه‌داشتن استفاده می‌کند
  • Peek and Pop — الگوی اصلی UX 3D Touch: فشار سبک (peek) برای پیش‌نمایش، فشار عمیق (pop) برای باز کردن
  • UIContextMenuInteraction — API مدرن iOS برای منوهای متنی که با Haptic Touch کار می‌کند
  • Force Touch — فناوری اپل که فشار را از طریق حسگرهای خازنی در نمایشگر اندازه‌گیری می‌کند
  • UIForceTouchCapability — روش iOS برای بررسی در دسترس بودن 3D Touch روی دستگاه

3D Touch و Haptic Touch چیست؟

3D Touch — فناوری ورودی سخت‌افزاری که در iPhone 6S (2015) معرفی شد. در زیر سطح نمایشگر حسگرهای خازنی قرار دارند که فاصله بین شیشه و نور پس‌زمینه را اندازه‌گیری می‌کنند. هنگام فشار دادن با انگشت، شیشه به میزان میکرون خم می‌شود، حسگرها میزان تغییر شکل را ثبت کرده و آن را به مقدار نیرو (گرم) تبدیل می‌کنند. iOS سه سطح را تشخیص می‌دهد: لمس سبک (touch)، فشار متوسط (peek، ~200 گرم) و فشار عمیق (pop، ~400 گرم).

Haptic Touch — جایگزین نرم‌افزاری 3D Touch که در iOS 13 (2019) معرفی شد. به جای اندازه‌گیری فشار، Haptic Touch از Long Press (نگه‌داشتن انگشت به مدت ~500 میلی‌ثانیه) برای فعال‌سازی همان اقدامات استفاده می‌کند. بازخورد لمسی (haptic feedback) حس "کلیک" را شبیه‌سازی می‌کند، اگرچه هیچ فشار فیزیکی رخ نمی‌دهد. اپل به دلیل پیچیدگی و هزینه بالای تولید نمایشگرهای 3D Touch، به ویژه در گذار به پنل‌های OLED با Face ID، به Haptic Touch روی آورد.

پیشینه تاریخی: 3D Touch در iPhone 6S ظاهر شد و تا iPhone XS (2018) حفظ شد. iPhone XR (2018) اولین دستگاهی بود که به جای 3D Touch از Haptic Touch استفاده کرد. از iPhone 11 (2019) و iOS 13 به بعد، همه iPhoneهای جدید از Haptic Touch استفاده می‌کنند. iPad هرگز 3D Touch دریافت نکرد — فقط Haptic Touch از iPadOS 13. Apple Watch از فناوری Force Touch در نمایشگر استفاده می‌کند (متفاوت از 3D Touch iPhone) که از watchOS 7 و Series 6 حذف شد.

فناوری Force Touch: فشار چگونه اندازه‌گیری می‌شود

Force Touch — فناوری اندازه‌گیری نیروی فشار مورد استفاده اپل در iPhone 6S–XS (3D Touch)، ترک‌پدهای MacBook (2015+) و Apple Watch (Series 1–5). در پایه آن حسگرهای خازنی قرار دارند که در پیرامون نمایشگر قرار گرفته‌اند. هنگام فشار، شیشه به میزان میکرون تغییر شکل می‌دهد، حسگرها تغییر فاصله را ثبت کرده و نیرو را بر اساس منحنی کالیبراسیون محاسبه می‌کنند. سیستم دمای محیط (کالیبراسیون هر 24 ساعت) و موقعیت انگشت (مرکز صفحه حساس‌تر است) را در نظر می‌گیرد.

کالیبراسیون — جنبه حیاتی 3D Touch. هر iPhone به صورت جداگانه در کارخانه کالیبره می‌شود. iOS همچنین کالیبراسیون پویا انجام می‌دهد: در اولین فشار پس از راه‌اندازی، سیستم حداکثر نیروی کاربر را درخواست کرده و حساسیت را تنظیم می‌کند. حسگرها دقت ±10 گرم دارند، محدوده — از 0 تا 500+ گرم. توسعه‌دهنده می‌تواند مقدار force را از طریق UITouch.force (نرمال‌شده از 0.0 تا حداکثر) یا UITouch.maximumPossibleForce دریافت کند.

swift
// بررسی در دسترس بودن 3D Touch و خواندن نیروی فشار
class ForceTouchViewController: UIViewController {

    override func touchesMoved(_ touches: Set<UITouch>,
                                with event: UIEvent?) {
        guard let touch = touches.first else { return }

        // بررسی پشتیبانی Force Touch روی دستگاه
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // دستگاه از 3D Touch پشتیبانی نمی‌کند
            return
        }

        // خواندن نیروی فشار (0.0 — حداکثر)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // نرمال‌سازی به محدوده 0.0–1.0 برای تجسم
        let normalizedForce = force / maxForce

        // واکنش بصری به نیروی فشار (مقیاس عنصر)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

محدودیت‌ها: 3D Touch فقط با لمس فعال کار می‌کند (UITouch.phase == .began یا .moved). پس از رها کردن، مقدار force صفر می‌شود. حداکثر مقدار force بین دستگاه‌ها متفاوت است: iPhone 6S — 6.6666، iPhone 7/X — تا 20.0 (به دلیل کالیبراسیون متفاوت). از force برای اقدامات حیاتی استفاده نکنید — کاربر ممکن است نداند با چه نیرویی فشار دهد. همیشه از طریق Haptic Touch (Long Press) جایگزین ارائه دهید.

Peek and Pop: الگوی UX فشار قوی

Peek and Pop — الگوی اصلی UX اپل که با 3D Touch در iPhone 6S معرفی شد. Peek — فشار سبک (force ~0.5–1.0) که پیش‌نمایش محتوا (ایمیل، لینک، عکس) را به صورت یک کارت پیش‌نمایش نشان می‌دهد. Pop — فشار عمیق‌تر (force ~2.0+) که محتوا را در تمام صفحه باز می‌کند. Peek از اقدامات پایین (share, copy, reply) پشتیبانی می‌کرد که با کشیدن انگشت به بالا روی کارت پیش‌نمایش قابل دسترسی بودند.

پیاده‌سازی Peek and Pop در UIKit شامل سه مؤلفه بود: UIViewControllerPreviewingDelegate (پروتکل با متدهای previewingContext(_:viewControllerForLocation:) و previewingContext(_:commit:))، UIPreviewAction (اقدامات پایین) و ثبت از طریق registerForPreviewing(with:sourceView:). توسعه‌دهنده مشخص می‌کرد که کدام ViewController در Peek نمایش داده شود و چگونه در Pop باز شود. سیستم به طور خودکار انیمیشن پارالاکس و تار شدن پس‌زمینه را اضافه می‌کرد.

ژستنیرو (نرمال)عملجلوه بصری
لمس (Touch)0.0–0.3تعامل عادیبرجسته‌سازی عنصر
فشار سبک (Peek)0.5–1.0پیش‌نمایش محتواکارت با تار شدن پس‌زمینه
فشار عمیق (Pop)2.0+باز شدن در تمام صفحهانیمیشن باز شدن کارت
کشیدن به بالااقدامات (share, copy)گروه UIPreviewAction

گذار به UIContextMenuInteraction (iOS 13): اپل Peek and Pop را با منوهای متنی از طریق UIContextMenuInteraction جایگزین کرد. API جدید ساده‌تر است: به UIViewControllerPreviewingDelegate نیاز ندارد، از منوهای سلسله‌مراتبی (submenus)، آیکون‌های SF Symbols پشتیبانی می‌کند و با 3D Touch و Haptic Touch یکسان کار می‌کند. مهاجرت: registerForPreviewing از iOS 13 منسوخ شده است. آن را با UIContextMenuConfiguration جایگزین کنید که به طور خودکار با قابلیت‌های دستگاه سازگار می‌شود.

منوهای متنی: UIContextMenuInteraction

UIContextMenuInteraction — API مدرن iOS برای منوهای متنی که از iOS 13 در دسترس است. از طریق addInteraction(_:) به هر UIView اضافه می‌شود. دلیگیت UIContextMenuInteractionDelegate پیکربندی منو را ارائه می‌دهد: UIContextMenuConfiguration با شناسه، previewProvider (اختیاری، برای پیش‌نمایش) و actionProvider (آرایه‌ای از UIAction یا UIMenu). منوی متنی با 3D Touch (در صورت وجود) یا Haptic Touch (Long Press در سایر دستگاه‌ها) فعال می‌شود.

swift
// UIContextMenuInteraction با منوی سلسله‌مراتبی
class ContextMenuViewController: UIViewController,
                                   UIContextMenuInteractionDelegate {

    override func viewDidLoad() {
        super.viewDidLoad()
        let interaction = UIContextMenuInteraction(delegate: self)
        contextMenuView.addInteraction(interaction)
    }

    func contextMenuInteraction(_ interaction: UIContextMenuInteraction,
        configurationForMenuAtLocation location: CGPoint) -> UIContextMenuConfiguration? {

        return UIContextMenuConfiguration(identifier: nil,
            previewProvider: { PreviewViewController() }) { _ in

            let share = UIAction(title: "اشتراک‌گذاری",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

            let edit = UIAction(title: "ویرایش",
                            image: UIImage(systemName: "pencil"),
                            handler: { _ in self.editContent() })

            let delete = UIAction(title: "حذف",
                            image: UIImage(systemName: "trash"),
                            attributes: .destructive,
                            handler: { _ in self.deleteContent() })

            return UIMenu(title: "اقدامات", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration از previewProvider پشتیبانی می‌کند — کنترل‌کننده‌ای که به عنوان پیش‌نمایش نمایش داده می‌شود. اگر previewProvider برابر nil باشد، منوی متنی بدون پیش‌نمایش نشان داده می‌شود. برای تنظیم اندازه و ظاهر پیش‌نمایش از UIContextMenuContentPreviewProvider استفاده می‌شود. منوهای متنی به طور خودکار بازخورد لمسی (Haptic Touch Engine) و انیمیشن ظاهر شدن (scale + fade) دریافت می‌کنند.

Haptic Touch در مقابل 3D Touch: مقایسه

Haptic Touch و 3D Touch — فناوری‌های متفاوتی که به یک نتیجه منتهی می‌شوند. 3D Touch سخت‌افزاری است (حسگرهای فشار در نمایشگر)، Haptic Touch نرم‌افزاری است (Long Press + Taptic Engine برای شبیه‌سازی لمسی). 3D Touch هزینه‌های تولید (لایه اضافی حسگرها) دارد، ضخامت صفحه و پیچیدگی تعمیر را افزایش می‌دهد. Haptic Touch ارزان‌تر، ساده‌تر در تولید و در همه دستگاه‌های مدرن (iPhone SE 2020، iPhone 11–16، iPad، iPod touch) در دسترس است.

پارامتر3D TouchHaptic Touch
اصلاندازه‌گیری فشار (گرم)اندازه‌گیری زمان (میلی‌ثانیه)
دسترسیiPhone 6S–XS (محدود)iPhone XR+، iPad، iPod touch
سرعتفوری (~100 میلی‌ثانیه)با تأخیر (~500 میلی‌ثانیه)
سطوح فشار2 (peek + pop)1 (منوی متنی)
بازخورد لمسیTaptic Engine (شبیه‌سازی کلیک)Taptic Engine (شبیه‌سازی کلیک)
App StoreQuick Actions روی آیکونQuick Actions روی آیکون
کالیبراسیونتنظیم خودکار با نیروی کاربرنیاز نیست
قابلیت تعمیرپیچیده (حسگرها در نمایشگر)استاندارد

تأثیر بر UX: سرعت 3D Touch بیشتر است — کاربر بلافاصله با فشار قوی منوی متنی را دریافت می‌کند. Haptic Touch به مکث 500 میلی‌ثانیه نیاز دارد که کندتر احساس می‌شود. با این حال اپل این را با بازخورد لمسی و انیمیشن بصری جبران می‌کند. کاربرانی که از 3D Touch به Haptic Touch منتقل می‌شوند اغلب به تفاوت سرعت اشاره می‌کنند. برای توسعه‌دهندگان مهاجرت شفاف است: UIContextMenuInteraction روی هر دو فناوری یکسان کار می‌کند.

فشار قوی در کجا استفاده می‌شود

Quick Actions — منوی متنی روی آیکون برنامه در صفحه اصلی. فشار قوی (3D Touch) یا Long Press (Haptic Touch) روی آیکون تا 4 اقدام سریع را نشان می‌دهد: "پیام جدید" (Messages)، "عکس گرفتن" (Camera)، "جستجو" (Safari). از طریق کلید Info.plist UIApplicationShortcutItems یا از طریق دلیگیت UIApplicationShortcutItem پیاده‌سازی می‌شود. Quick Actions در همه دستگاه‌های با iOS 13+ (Haptic Touch) یا 3D Touch در دسترس است.

صفحه‌کلید-ترک‌پد — فشار قوی روی صفحه‌کلید iOS آن را به حالت ترک‌پد تغییر می‌دهد: کلیدها غیرفعال می‌شوند و حرکت انگشت مکان‌نما را جابه‌جا می‌کند. 3D Touch ترک‌پد را با فشار قوی در هر جای صفحه‌کلید فعال می‌کرد. Haptic Touch ترک‌پد را با فشار طولانی روی نوار فاصله (spacebar) فعال می‌کند. حالت ترک‌پد به یکی از محبوب‌ترین کاربردهای 3D Touch تبدیل شد — کاربران موقعیت‌یابی دقیق مکان‌نما را در ویرایش متن ارزشمند می‌دانند.

پیش‌نمایش لینک‌ها و عکس‌ها — فشار قوی روی یک لینک در Safari پیش‌نمایش صفحه (peek) را بدون انتقال نشان می‌دهد. به طور مشابه: فشار روی عکس در Messages نسخه بزرگ‌شده را باز می‌کند. کشیدن انگشت به بالا در حالت peek اقدامات را نشان می‌دهد: "باز کن"، "افزودن به فهرست مطالعه"، "کپی". همه این سناریوها از طریق UIContextMenuInteraction در نسخه‌های مدرن iOS کار می‌کنند.

نقاشی و برنامه‌های خلاقانه — در Procreate، Photoshop و سایر برنامه‌های نقاشی، نیروی فشار 3D Touch ضخامت قلم‌مو، شفافیت یا اشباع رنگ را کنترل می‌کند. برنامه‌ها UITouch.force (0.0–1.0) را خوانده و به پارامترهای ابزار تبدیل می‌کنند. با این حال، برای نقاشی، Apple Pencil در iPad کنترل دقیق‌تری بر فشار (با پشتیبانی از شیب و آزیموت) فراهم می‌کند، بنابراین 3D Touch در برنامه‌های خلاقانه در iPhone کمتر مورد تقاضا است.

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

تفاوت بین 3D Touch و Haptic Touch چیست؟

3D Touch — فناوری سخت‌افزاری که نیروی فشار را از طریق حسگرهای خازنی در نمایشگر اندازه‌گیری می‌کند (iPhone 6S–XS). Haptic Touch — تقلید نرم‌افزاری با استفاده از Long Press (نگه‌داشتن) و بازخورد لمسی Taptic Engine. 3D Touch سریع‌تر است (100 میلی‌ثانیه در مقابل 500 میلی‌ثانیه) و دو سطح نیرو را پشتیبانی می‌کند (peek + pop). Haptic Touch در همه دستگاه‌های با iOS 13+، از جمله iPhone XR، همه مدل‌های iPhone 11–16، iPad و iPod touch در دسترس است.

چگونه بررسی کنیم که دستگاه از 3D Touch پشتیبانی می‌کند؟

در کد از traitCollection.forceTouchCapability استفاده کنید. مقدار .available — 3D Touch پشتیبانی می‌شود، .unavailable — نه، .unknown — هنوز مشخص نشده است (منتظر traitCollectionDidChange باشید). در دستگاه‌های با Haptic Touch، forceTouchCapability مقدار .unavailable را برمی‌گرداند، زیرا Haptic Touch از حسگرهای نیروی سخت‌افزاری استفاده نمی‌کند. برای کاربران بررسی: تنظیمات → عمومی → دسترسی جهانی → 3D Touch (فقط در iPhoneهای قدیمی).

چرا اپل از 3D Touch صرف‌نظر کرد؟

اپل 3D Touch را با Haptic Touch به چند دلیل جایگزین کرد: هزینه بالای تولید صفحه‌نمایش‌های دارای حسگر فشار، پیچیدگی تعمیر (حسگرها در نمایشگر یکپارچه شده‌اند)، آگاهی محدود کاربران (بسیاری از عملکرد اطلاع نداشتند) و گذار به صفحه‌نمایش‌های OLED با Face ID که کالیبره کردن آنها برای 3D Touch دشوارتر است. Haptic Touch ارزان‌تر، ساده‌تر و در تعداد بیشتری از دستگاه‌ها در دسترس است.

کدام iPhone‌ها از 3D Touch پشتیبانی می‌کنند؟

3D Touch توسط: iPhone 6S، 6S Plus، 7، 7 Plus، 8، 8 Plus، X، XS، XS Max پشتیبانی می‌شود. iPhone XR 3D Touch ندارد (اولین با Haptic Touch). همه مدل‌های iPhone 11، 12، 13، 14، 15، 16 و SE (نسل 2 و 3) از Haptic Touch استفاده می‌کنند. iPad هرگز 3D Touch نداشته است. در دستگاه‌های دارای 3D Touch تنظیمات حساسیت نیز موجود است (تنظیمات → عمومی → دسترسی جهانی → 3D Touch).

آیا می‌توان 3D Touch را در دستگاه‌های بدون آن شبیه‌سازی کرد؟

بله، iOS به طور خودکار 3D Touch را از طریق Haptic Touch در دستگاه‌های بدون پشتیبانی سخت‌افزاری شبیه‌سازی می‌کند. API UIContextMenuInteraction در همه دستگاه‌ها یکسان کار می‌کند — سیستم خودش محرک را انتخاب می‌کند (3D Touch یا Long Press). برای کد شما این شفاف است: منوی متنی در همه دستگاه‌های دارای iOS 13+ ظاهر می‌شود. نیازی به نوشتن منطق جداگانه برای 3D Touch و Haptic Touch نیست — از UIContextMenuConfiguration استفاده کنید.

خلاصه

  • 3D Touch — فناوری سخت‌افزاری اندازه‌گیری نیروی فشار از طریق حسگرهای موجود در نمایشگر (iPhone 6S–XS)
  • Haptic Touch — جایگزین نرم‌افزاری با استفاده از Long Press با بازخورد لمسی (iOS 13+)
  • Force Touch — فناوری حسگر خازنی برای اندازه‌گیری فشار با دقت ~10 گرم
  • Peek and Pop — الگوی اصلی UX با دو سطح فشار (پیش‌نمایش و باز کردن)
  • UIContextMenuInteraction — API مدرن iOS برای منوهای متنی، یکسان برای هر دو فناوری
  • Quick Actions — منوی متنی روی آیکون برنامه برای اقدامات سریع
  • UIForceTouchCapability — بررسی در دسترس بودن 3D Touch از طریق traitCollection

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

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

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

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