3D Touch: ما هو، تقنيات Force Touch و Haptic Touch

المؤلف: IT Sectr نُشر: 2026-02-28 وقت القراءة: 10 دق

3D Touch هي تقنية أجهزة من Apple تتعرف على قوة الضغط على شاشة iPhone، وبديلها البرمجي Haptic Touch الذي يعمل من خلال مدة اللمس. يستخدم 3D Touch أجهزة استشعار ضغط معايرة مثبتة تحت مصفوفة الشاشة (Force Touch)، ويسمح بالتمييز بين الضغط الخفيف (peek) والضغط العميق (pop). بدءًا من iOS 13، استبدلت Apple 3D Touch بـ Haptic Touch — وهي تقنية تحاكي الضغط القوي عبر Long Press مع استجابة لمسية UIContextMenuInteraction.

الخلاصة

  • قوة الضغط — 3D Touch يقيس الضغط بالغرامات؛ Haptic Touch يستخدم وقت الضغط
  • Peek and Pop — نمط UX الأصلي لـ 3D Touch: ضغط خفيف (peek) للمعاينة، ضغط عميق (pop) للفتح
  • UIContextMenuInteraction — واجهة برمجة تطبيقات iOS الحديثة للقوائم السياقية، التي تعمل مع Haptic Touch
  • Force Touch — تقنية Apple التي تقيس الضغط عبر أجهزة استشعار سعوية في الشاشة
  • 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 مللي ثانية) لتفعيل نفس الإجراءات. تحاكي الاستجابة اللمسية الشعور بـ "نقرة"، على الرغم من عدم حدوث ضغط فعلي. تحولت Apple إلى Haptic Touch بسبب تعقيد وارتفاع تكلفة تصنيع شاشات 3D Touch، خاصة عند الانتقال إلى شاشات OLED مع Face ID.

خلفية تاريخية: ظهر 3D Touch في iPhone 6S وبقي حتى iPhone XS (2018). كان iPhone XR (2018) أول جهاز مزود بـ Haptic Touch بدلاً من 3D 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 هي تقنية قياس القوة المستخدمة من قبل Apple في iPhone 6S–XS (3D Touch)، ولوحات التتبع في MacBook (2015+) و Apple Watch (Series 1–5). تعتمد على أجهزة استشعار سعوية موضوعة حول محيط الشاشة. عند الضغط، يتشوه الزجاج بميكرونات، تسجل أجهزة الاستشعار التغير في المسافة وتحسب القوة باستخدام منحنى معايرة. يأخذ النظام في الاعتبار درجة الحرارة المحيطة (معايرة كل 24 ساعة) وموضع الإصبع (مركز الشاشة أكثر حساسية).

المعايرة هي جانب حاسم من 3D Touch. يتم معايرة كل iPhone بشكل فردي في المصنع. يقوم iOS أيضًا بإجراء معايرة ديناميكية: عند أول ضغط بعد التمهيد، يطلب النظام أقصى قوة للمستخدم ويضبط الحساسية. تبلغ دقة أجهزة الاستشعار ±10 غرامات، النطاق — من 0 إلى 500+ غرام. يمكن للمطور الحصول على قيمة القوة عبر 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). بعد التحرير، تعود قيمة القوة إلى الصفر. تختلف القيمة القصوى للقوة بين الأجهزة: iPhone 6S — 6.6666، iPhone 7/X — حتى 20.0 (بسبب اختلاف المعايرة). لا تستخدم القوة للإجراءات الحرجة — قد لا يعرف المستخدم مقدار القوة المطلوبة. وفر دائمًا بديلاً من خلال Haptic Touch (Long Press).

Peek and Pop: نمط UX للضغط القوي

Peek and Pop هو نمط UX الأصلي من Apple الذي تم تقديمه مع 3D Touch في iPhone 6S. Peek هو ضغط خفيف (قوة ~0.5–1.0) يعرض معاينة للمحتوى (بريد إلكتروني، رابط، صورة) في بطاقة معاينة. Pop هو ضغط أعمق (قوة ~2.0+) يفتح المحتوى في وضع ملء الشاشة. يدعم Peek إجراءات في الأسفل (مشاركة، نسخ، رد)، يمكن الوصول إليها عن طريق التمرير لأعلى على بطاقة المعاينة.

تنفيذ 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+فتح في ملء الشاشةرسوم متحركة لتوسيع البطاقة
التمرير لأعلىإجراءات (مشاركة، نسخ)مجموعة UIPreviewAction

الانتقال إلى UIContextMenuInteraction (iOS 13): استبدلت Apple Peek and Pop بقوائم سياقية عبر UIContextMenuInteraction. واجهة API الجديدة أبسط: لا تتطلب UIViewControllerPreviewingDelegate، وتدعم القوائم الهرمية (قوائم فرعية)، وأيقونات SF Symbols، وتعمل بشكل متطابق مع 3D Touch و Haptic Touch. الترحيل: registerForPreviewing مهمل منذ iOS 13. استبدله بـ UIContextMenuConfiguration، الذي يتكيف تلقائيًا مع إمكانيات الجهاز.

القوائم السياقية: UIContextMenuInteraction

UIContextMenuInteraction هي واجهة برمجة تطبيقات iOS حديثة للقوائم السياقية، متاحة منذ iOS 13. تُضاف إلى أي UIView عبر addInteraction(_:). يوفر المفوض 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) ورسوم متحركة للظهور (تكبير + تلاشي).

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 Storeإجراءات سريعة على الأيقونةإجراءات سريعة على الأيقونة
المعايرةمعايرة تلقائية حسب قوة المستخدمغير مطلوبة
قابلية الإصلاحمعقدة (أجهزة استشعار في الشاشة)قياسية

التأثير على UX: سرعة 3D Touch أعلى — يحصل المستخدم على القائمة السياقية فورًا عند الضغط بقوة. يتطلب Haptic Touch توقفًا لمدة 500 مللي ثانية، مما يجعله يبدو أبطأ. ومع ذلك، تعوض Apple ذلك بالاستجابة اللمسية والرسوم المتحركة المرئية. غالبًا ما يلاحظ المستخدمون الذين انتقلوا من 3D Touch إلى Haptic Touch الفرق في السرعة. بالنسبة للمطورين، الترحيل شفاف: يعمل UIContextMenuInteraction بشكل متطابق على كلتا التقنيتين.

أين يُستخدم الضغط القوي

الإجراءات السريعة (Quick Actions) — قائمة سياقية على أيقونة التطبيق على الشاشة الرئيسية. الضغط القوي (3D Touch) أو الضغط المطول (Haptic Touch) على الأيقونة يعرض حتى 4 إجراءات سريعة: "رسالة جديدة" (Messages)، "التقاط صورة" (Camera)، "بحث" (Safari). يتم تنفيذها من خلال مفتاح Info.plist UIApplicationShortcutItems أو من خلال مفوض UIApplicationShortcutItem. الإجراءات السريعة متاحة على جميع الأجهزة مع iOS 13+ (Haptic Touch) أو 3D Touch.

لوحة التتبع في لوحة المفاتيح — الضغط القوي على لوحة مفاتيح iOS يحولها إلى وضع لوحة التتبع: تصبح المفاتيح غير نشطة، وتحرك حركة الإصبع المؤشر. كان 3D Touch ينشط لوحة التتبع بالضغط القوي في أي مكان على لوحة المفاتيح. ينشط Haptic Touch لوحة التتبع بالضغط المطول على مفتاح المسافة. أصبح وضع لوحة التتبع أحد أكثر استخدامات 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 هي محاكاة برمجية تستخدم الضغط المطول والاستجابة اللمسية من 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 القديمة).

لماذا تخلت Apple عن 3D Touch؟

استبدلت Apple 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 (الجيل الثاني والثالث) تستخدم Haptic Touch. لم يحصل iPad مطلقًا على 3D Touch. على الأجهزة المزودة بـ 3D Touch، تتوفر أيضًا إعدادات الحساسية (الإعدادات → إمكانية الوصول → اللمس → 3D Touch).

هل يمكن محاكاة 3D Touch على الأجهزة التي لا تدعمه؟

نعم، iOS يحاكي تلقائيًا 3D Touch عبر Haptic Touch على الأجهزة التي لا تحتوي على دعم أجهزة. تعمل واجهة برمجة التطبيقات UIContextMenuInteraction بشكل متطابق على جميع الأجهزة — النظام نفسه يحدد المشغل (3D Touch أو Long Press). هذا شفاف بالنسبة لرمزك: تظهر القائمة السياقية على جميع الأجهزة مع iOS 13+. لا تحتاج إلى كتابة منطق منفصل لـ 3D Touch و Haptic Touch — استخدم UIContextMenuConfiguration.

الملخص

  • 3D Touch — تقنية أجهزة لقياس قوة الضغط عبر أجهزة استشعار في الشاشة (iPhone 6S–XS)
  • Haptic Touch — بديل برمجي يستخدم الضغط المطول مع استجابة لمسية (iOS 13+)
  • Force Touch — تقنية أجهزة استشعار سعوية لقياس الضغط بدقة ~10 غرام
  • Peek and Pop — نمط UX أصلي بمستويين من الضغط (معاينة وفتح)
  • UIContextMenuInteraction — واجهة برمجة تطبيقات iOS حديثة للقوائم السياقية، موحدة لكلتا التقنيتين
  • Quick Actions — قائمة سياقية على أيقونة التطبيق للإجراءات السريعة
  • UIForceTouchCapability — التحقق من توفر 3D Touch عبر traitCollection

سنقوم بتطوير تطبيق جوال جاهز

تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.

مناقشة المشروع

اقرأ أيضًا