3D Touch: mi ez, a Force Touch és Haptic Touch technológiák

Szerző: IT Sectr Megjelenés: 2026-02-28 Olvasási idő: 10 perc

3D Touch — az Apple hardveres technológiája, amely felismeri az iPhone kijelzőjére gyakorolt nyomás erejét, és annak szoftveres helyettesítője a Haptic Touch, amely az érintés időtartama alapján működik. A 3D Touch kalibrált nyomásérzékelőket használ, amelyek a képernyő mátrixa alatt helyezkednek el (Force Touch), és lehetővé teszik a könnyű nyomás (peek) és a mély nyomás (pop) megkülönböztetését. Az iOS 13-tól kezdve az Apple a 3D Touch-ot Haptic Touch-ra cserélte — olyan technológiára, amely a Long Press segítségével szimulálja az erős nyomást tapintási visszajelzéssel UIContextMenuInteraction.

Főbb pontok

  • Nyomáserő — a 3D Touch grammban méri a nyomást; a Haptic Touch a tartási időt használja
  • Peek and Pop — a 3D Touch eredeti UX-mintája: könnyű nyomás (peek) az előnézethez, mély (pop) a megnyitáshoz
  • UIContextMenuInteraction — modern iOS API a helyi menükhöz, amely Haptic Touch-szal működik
  • Force Touch — az Apple technológiája, amely kapacitív érzékelőkön keresztül méri a nyomást a kijelzőben
  • UIForceTouchCapability — iOS metódus a 3D Touch elérhetőségének ellenőrzésére az eszközön

Mi az a 3D Touch és Haptic Touch?

3D Touch — hardveres beviteli technológia, amely az iPhone 6S-ben (2015) debütált. A kijelző felülete alatt kapacitív érzékelők találhatók, amelyek az üveg és a háttérvilágítás közötti távolságot mérik. Ujjal történő megnyomáskor az üveg mikronokkal behajlik, az érzékelők rögzítik a deformáció mértékét és átalakítják erőértékké (gramm). Az iOS három szintet különböztet meg: könnyű érintés (touch), közepes nyomás (peek, ~200 g) és mély nyomás (pop, ~400 g).

Haptic Touch — a 3D Touch szoftveres helyettesítője, amelyet az iOS 13-ban (2019) vezettek be. A nyomás mérése helyett a Haptic Touch Long Press-t (ujj ~500 ms-ig tartása) használ ugyanazon műveletek aktiválásához. A tapintási visszajelzés (haptic feedback) a "kattintás" érzését szimulálja, bár nem történik fizikai nyomás. Az Apple azért váltott Haptic Touch-ra, mert a 3D Touch kijelzők gyártása bonyolult és költséges volt, különösen a Face ID-s OLED panelekre való áttéréskor.

Történelmi háttér: A 3D Touch az iPhone 6S-ben jelent meg és az iPhone XS-ig (2018) maradt fenn. Az iPhone XR (2018) volt az első készülék Haptic Touch-szal a 3D Touch helyett. Az iPhone 11-től (2019) és iOS 13-tól kezdve minden új iPhone Haptic Touch-t használ. Az iPad soha nem kapott 3D Touch-t — csak Haptic Touch-t az iPadOS 13-tól. Az Apple Watch Force Touch technológiát használ a kijelzőben (eltér az iPhone 3D Touch-tól), amelyet a watchOS 7-től és a Series 6-tól eltávolítottak.

Force Touch technológia: hogyan mérik a nyomást

Force Touch — a nyomáserő mérésének technológiája, amelyet az Apple az iPhone 6S–XS-ben (3D Touch), a MacBook trackpadokban (2015+) és az Apple Watch-ban (Series 1–5) használ. Alapját a kijelző kerülete mentén elhelyezett kapacitív érzékelők képezik. Nyomáskor az üveg mikronokkal deformálódik, az érzékelők rögzítik a távolságváltozást és a kalibrációs görbe szerint kiszámítják az erőt. A rendszer figyelembe veszi a környezeti hőmérsékletet (24 óránkénti kalibráció) és az ujj helyzetét (a képernyő közepe érzékenyebb).

Kalibráció — a 3D Touch kritikus aspektusa. Minden iPhone-t egyedileg kalibrálnak a gyárban. Az iOS dinamikus kalibrációt is végez: az első rendszerindítás utáni nyomáskor a rendszer kéri a felhasználó maximális erejét és beállítja az érzékenységet. Az érzékelők pontossága ±10 gramm, tartomány — 0-tól 500+ grammig. A fejlesztő az UITouch.force (0.0-tól maximumig normalizált) vagy UITouch.maximumPossibleForce segítségével kaphatja meg az erőértéket.

swift
// 3D Touch elérhetőségének ellenőrzése és nyomáserő olvasása
class ForceTouchViewController: UIViewController {

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

        // Force Touch támogatás ellenőrzése az eszközön
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // Az eszköz nem támogatja a 3D Touch-t
            return
        }

        // Nyomáserő olvasása (0.0 — max)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // Normalizálás 0.0–1.0 tartományba a vizualizációhoz
        let normalizedForce = force / maxForce

        // Vizuális reakció a nyomáserőre (elem méretezése)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

Korlátozások: A 3D Touch csak aktív érintéssel működik (UITouch.phase == .began vagy .moved). Elengedés után az erőérték nullázódik. A maximális erőérték eszközönként változik: iPhone 6S — 6.6666, iPhone 7/X — 20.0-ig (eltérő kalibráció miatt). Ne használja az erőt kritikus műveletekhez — a felhasználó nem tudhatja, mekkora erővel kell nyomnia. Mindig biztosítson alternatívát Haptic Touch-on (Long Press) keresztül.

Peek and Pop: az erős nyomás UX-mintája

Peek and Pop — az Apple eredeti UX-mintája, amelyet a 3D Touch-szal vezettek be az iPhone 6S-ben. Peek — könnyű nyomás (force ~0.5–1.0), amely a tartalom előnézetét mutatja (e-mail, link, fénykép) egy előnézeti kártya formájában. Pop — mélyebb nyomás (force ~2.0+), amely teljes képernyőn nyitja meg a tartalmat. A Peek támogatta az alsó műveleteket (share, copy, reply), amelyek az előnézeti kártyán felfelé húzással voltak elérhetők.

A Peek and Pop megvalósítása a UIKit-ben három összetevőből állt: UIViewControllerPreviewingDelegate (protokoll a previewingContext(_:viewControllerForLocation:) és previewingContext(_:commit:) metódusokkal), UIPreviewAction (alsó műveletek) és regisztráció a registerForPreviewing(with:sourceView:) segítségével. A fejlesztő határozta meg, hogy melyik ViewController jelenjen meg Peek-nél és hogyan nyíljon meg Pop-nál. A rendszer automatikusan parallaxis animációt és háttér elmosást adott hozzá.

MozdulatErő (norm.)MűveletVizuális hatás
Érintés (Touch)0.0–0.3Szokásos interakcióElem kiemelése
Könnyű nyomás (Peek)0.5–1.0Tartalom előnézeteKártya háttér elmosással
Mély nyomás (Pop)2.0+Megnyitás teljes képernyőnKártya kinyílásának animációja
Felfelé húzásMűveletek (share, copy)UIPreviewAction csoport

Áttérés UIContextMenuInteraction-ra (iOS 13): Az Apple a Peek and Pop-ot helyi menükre cserélte az UIContextMenuInteraction segítségével. Az új API egyszerűbb: nem igényel UIViewControllerPreviewingDelegate-t, támogatja a hierarchikus menüket (almenük), az SF Symbols ikonokat, és ugyanúgy működik 3D Touch-szal és Haptic Touch-szal. Migráció: a registerForPreviewing elavult iOS 13-tól. Cserélje ki UIContextMenuConfiguration-ra, amely automatikusan alkalmazkodik az eszköz képességeihez.

Helyi menük: UIContextMenuInteraction

UIContextMenuInteraction — modern iOS API a helyi menükhöz, elérhető iOS 13-tól. Bármely UIView-hez hozzáadható az addInteraction(_:) segítségével. Az UIContextMenuInteractionDelegate delegált biztosítja a menü konfigurációját: UIContextMenuConfiguration azonosítóval, previewProvider (opcionális, előnézethez) és actionProvider (UIAction vagy UIMenu tömb). A helyi menü 3D Touch (ha elérhető) vagy Haptic Touch (más eszközökön Long Press) segítségével aktiválódik.

swift
// UIContextMenuInteraction hierarchikus menüvel
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: "Megosztás",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

            let edit = UIAction(title: "Szerkesztés",
                            image: UIImage(systemName: "pencil"),
                            handler: { _ in self.editContent() })

            let delete = UIAction(title: "Törlés",
                            image: UIImage(systemName: "trash"),
                            attributes: .destructive,
                            handler: { _ in self.deleteContent() })

            return UIMenu(title: "Műveletek", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration támogatja a previewProvider-t — egy kontrollert, amely előnézetként jelenik meg. Ha a previewProvider nil, a helyi menü előnézet nélkül jelenik meg. Az előnézet méretének és megjelenésének testreszabásához az UIContextMenuContentPreviewProvider-t használják. A helyi menük automatikusan kapnak tapintási visszajelzést (Haptic Touch Engine) és megjelenési animációt (scale + fade).

Haptic Touch vs 3D Touch: összehasonlítás

Haptic Touch és 3D Touch — különböző technológiák, amelyek ugyanarra az eredményre vezetnek. A 3D Touch hardveres (nyomásérzékelők a kijelzőben), a Haptic Touch szoftveres (Long Press + Taptic Engine tapintási szimulációhoz). A 3D Touch gyártási költségekkel jár (további érzékelőréteg), növeli a képernyő vastagságát és a javítás bonyolultságát. A Haptic Touch olcsóbb, egyszerűbb a gyártásban és minden modern eszközön elérhető (iPhone SE 2020, iPhone 11–16, iPad, iPod touch).

Paraméter3D TouchHaptic Touch
ElvNyomásmérés (gramm)Időmérés (ezredmásodperc)
ElérhetőségiPhone 6S–XS (korlátozott)iPhone XR+, iPad, iPod touch
SebességAzonnali (~100 ms)Késleltetéssel (~500 ms)
Nyomási szintek2 (peek + pop)1 (helyi menü)
Tapintási visszajelzésTaptic Engine (kattintás szimuláció)Taptic Engine (kattintás szimuláció)
App StoreQuick Actions az ikononQuick Actions az ikonon
KalibrációAuto-kalibráció a felhasználó erejéhezNem szükséges
JavíthatóságBonyolult (érzékelők a kijelzőben)Szabványos

Hatás az UX-re: a 3D Touch sebessége nagyobb — a felhasználó azonnal megkapja a helyi menüt erős nyomáskor. A Haptic Touch 500 ms szünetet igényel, ami lassabbnak érződik. Az Apple ezt azonban tapintási visszajelzéssel és vizuális animációval kompenzálja. A 3D Touch-ról Haptic Touch-ra áttérő felhasználók gyakran észreveszik a sebességkülönbséget. A fejlesztők számára a migráció átlátható: az UIContextMenuInteraction mindkét technológián ugyanúgy működik.

Hol alkalmazzák az erős nyomást

Quick Actions — helyi menü az alkalmazás ikonján a kezdőképernyőn. Erős nyomás (3D Touch) vagy Long Press (Haptic Touch) az ikonon akár 4 gyors műveletet jelenít meg: "Új üzenet" (Messages), "Fotó készítése" (Camera), "Keresés" (Safari). Az Info.plist UIApplicationShortcutItems kulcsán vagy az UIApplicationShortcutItem delegált segítségével valósítható meg. A Quick Actions minden iOS 13+ (Haptic Touch) vagy 3D Touch készüléken elérhető.

Billentyűzet-trackpad — az iOS billentyűzetre gyakorolt erős nyomás trackpad módba kapcsolja: a billentyűk inaktívvá válnak, és az ujj mozgása mozgatja a kurzort. A 3D Touch a billentyűzet bármely pontján erős nyomással aktiválta a trackpadot. A Haptic Touch a szóköz billentyűn (spacebar) történő hosszú nyomással aktiválja a trackpadot. A trackpad mód a 3D Touch egyik legnépszerűbb alkalmazásává vált — a felhasználók értékelik a kurzor pontos pozicionálását szövegszerkesztéskor.

Linkek és fényképek előnézete — a Safari-ban egy linkre gyakorolt erős nyomás megjeleníti az oldal előnézetét (peek) anélkül, hogy navigálna. Hasonlóan: a Messages-ben egy fényképre gyakorolt nyomás megnyitja a nagyított változatot. A peek módban felfelé húzás megjeleníti a műveleteket: "Megnyitás", "Hozzáadás az olvasási listához", "Másolás". Mindezek a forgatókönyvek az UIContextMenuInteraction segítségével működnek az iOS modern verzióiban.

Rajzolás és kreatív alkalmazások — a Procreate, Photoshop és más rajzoló alkalmazásokban a 3D Touch nyomáserő vezérli az ecset vastagságát, átlátszatlanságát vagy színtelítettségét. Az alkalmazások olvassák az UITouch.force (0.0–1.0) értéket és átalakítják eszközparaméterekké. A rajzoláshoz azonban az iPad-en az Apple Pencil pontosabb nyomásszabályozást biztosít (döntés és azimut támogatással), így a 3D Touch a kreatív alkalmazásokban iPhone-on kevésbé keresett.

Gyakran Ismételt Kérdések

Mi a különbség a 3D Touch és a Haptic Touch között?

3D Touch — hardveres technológia, amely a nyomáserőt kapacitív érzékelőkön keresztül méri a kijelzőben (iPhone 6S–XS). Haptic Touch — szoftveres utánzat, amely Long Press-t (tartás) és a Taptic Engine tapintási visszajelzését használja. A 3D Touch gyorsabb (100 ms vs 500 ms) és két erősségi szintet támogat (peek + pop). A Haptic Touch minden iOS 13+ eszközön elérhető, beleértve az iPhone XR-t, az összes iPhone 11–16 modellt, iPad-et és iPod touch-ot.

Hogyan ellenőrizhető, hogy az eszköz támogatja-e a 3D Touch-t?

A kódban használja a traitCollection.forceTouchCapability tulajdonságot. A .available érték — a 3D Touch támogatott, .unavailable — nem, .unknown — még nem meghatározott (várja meg a traitCollectionDidChange-t). A Haptic Touch-eszközökön a forceTouchCapability .unavailable értéket ad vissza, mivel a Haptic Touch nem használ hardveres erőérzékelőket. Felhasználók számára ellenőrzés: Beállítások → Általános → Akadálymentesítés → 3D Touch (csak régebbi iPhone-okon).

Miért hagyott fel az Apple a 3D Touch-szal?

Az Apple a 3D Touch-t Haptic Touch-ra cserélte több okból: a nyomásérzékelős kijelzők magas gyártási költsége, a javítás bonyolultsága (az érzékelők integrálva vannak a kijelzőbe), a felhasználók korlátozott tudatossága (sokan nem ismerték a funkciót) és az OLED-kijelzőkre való áttérés Face ID-val, amelyeket nehezebb kalibrálni a 3D Touch-hoz. A Haptic Touch olcsóbb, egyszerűbb és több eszközön elérhető.

Mely iPhone-ok támogatják a 3D Touch-t?

A 3D Touch támogatja: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. Az iPhone XR nem rendelkezik 3D Touch-szal (első Haptic Touch-szal). Az összes iPhone 11, 12, 13, 14, 15, 16 és SE (2. és 3. generáció) modell Haptic Touch-t használ. Az iPad soha nem rendelkezett 3D Touch-szal. A 3D Touch-eszközökön érzékenységi beállítások is elérhetők (Beállítások → Általános → Akadálymentesítés → 3D Touch).

Lehet-e emulálni a 3D Touch-t az azt nem támogató eszközökön?

Igen, az iOS automatikusan emulálja a 3D Touch-t Haptic Touch-on keresztül a hardveres támogatással nem rendelkező eszközökön. Az UIContextMenuInteraction API minden eszközön ugyanúgy működik — a rendszer maga választja ki az indítót (3D Touch vagy Long Press). Az Ön kódja számára ez átlátható: a helyi menü minden iOS 13+ eszközön megjelenik. Nem kell külön logikát írnia a 3D Touch és Haptic Touch számára — használja az UIContextMenuConfiguration-t.

Összefoglalás

  • 3D Touch — hardveres technológia a nyomáserő mérésére a kijelző érzékelőin keresztül (iPhone 6S–XS)
  • Haptic Touch — szoftveres helyettesítő, amely Long Press-t használ tapintási visszajelzéssel (iOS 13+)
  • Force Touch — kapacitív érzékelő technológia nyomásméréshez ~10 g pontossággal
  • Peek and Pop — eredeti UX-minta két nyomási szinttel (előnézet és megnyitás)
  • UIContextMenuInteraction — modern iOS API a helyi menükhöz, közös mindkét technológiához
  • Quick Actions — helyi menü az alkalmazás ikonján gyors műveletekhez
  • UIForceTouchCapability — a 3D Touch elérhetőségének ellenőrzése traitCollection segítségével

Kulcsrakész mobilalkalmazást fejlesztünk

Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.

Projekt megbeszélése

Olvassa el is