3D Touch: ce este, tehnologiile Force Touch și Haptic Touch

Autor: IT Sectr Publicat: 2026-02-28 Timp de citire: 10 min

3D Touch — tehnologia hardware Apple care recunoaște forța de apăsare pe ecranul iPhone și înlocuitorul său software Haptic Touch, care funcționează pe baza duratei de atingere. 3D Touch utilizează senzori de presiune calibrați montați sub matricea ecranului (Force Touch) și permite distingerea între o apăsare ușoară (peek) și una profundă (pop). Începând cu iOS 13, Apple a înlocuit 3D Touch cu Haptic Touch — o tehnologie care simulează apăsarea forțată prin Long Press cu feedback tactil UIContextMenuInteraction.

Principalele

  • Forța de apăsare — 3D Touch măsoară presiunea în grame; Haptic Touch utilizează timpul de menținere
  • Peek and Pop — modelul UX original al 3D Touch: apăsare ușoară (peek) pentru previzualizare, profundă (pop) pentru deschidere
  • UIContextMenuInteraction — API modern iOS pentru meniuri contextuale care funcționează cu Haptic Touch
  • Force Touch — tehnologia Apple care măsoară presiunea prin senzori capacitivi în ecran
  • UIForceTouchCapability — metoda iOS pentru verificarea disponibilității 3D Touch pe dispozitiv

Ce este 3D Touch și Haptic Touch?

3D Touch — tehnologia hardware de intrare, debutată în iPhone 6S (2015). Sub suprafața ecranului se află senzori capacitivi care măsoară distanța dintre sticlă și iluminarea de fundal. La apăsarea cu degetul, sticla se îndoaie la nivel de microni, senzorii înregistrează magnitudinea deformării și o transformă într-o valoare a forței (grame). iOS distinge trei niveluri: atingere ușoară (touch), apăsare medie (peek, ~200 g) și apăsare profundă (pop, ~400 g).

Haptic Touch — înlocuitorul software al 3D Touch, introdus în iOS 13 (2019). În loc să măsoare presiunea, Haptic Touch utilizează Long Press (menținerea degetului ~500 ms) pentru a activa aceleași acțiuni. Feedback-ul tactil (haptic feedback) simulează senzația de "clic", deși nu are loc nicio apăsare fizică. Apple a trecut la Haptic Touch din cauza complexității și costului ridicat de producție al ecranelor 3D Touch, în special la tranziția către panourile OLED cu Face ID.

Context istoric: 3D Touch a apărut în iPhone 6S și s-a păstrat până la iPhone XS (2018). iPhone XR (2018) a fost primul dispozitiv cu Haptic Touch în loc de 3D Touch. Începând cu iPhone 11 (2019) și iOS 13, toate iPhone-urile noi utilizează Haptic Touch. iPad nu a primit niciodată 3D Touch — doar Haptic Touch din iPadOS 13. Apple Watch utilizează tehnologia Force Touch în ecran (diferită de 3D Touch pe iPhone), care a fost eliminată începând cu watchOS 7 și Series 6.

Tehnologia Force Touch: cum se măsoară presiunea

Force Touch — tehnologia de măsurare a forței de apăsare utilizată de Apple în iPhone 6S–XS (3D Touch), trackpad-urile MacBook (2015+) și Apple Watch (Series 1–5). La bază se află senzori capacitivi amplasați pe perimetrul ecranului. La apăsare, sticla se deformează cu microni, senzorii înregistrează schimbarea distanței și calculează forța conform unei curbe de calibrare. Sistemul ia în considerare temperatura mediului (calibrare la fiecare 24 de ore) și poziția degetului (centrul ecranului este mai sensibil).

Calibrarea — un aspect critic al 3D Touch. Fiecare iPhone este calibrat individual în fabrică. iOS efectuează și o calibrare dinamică: la prima apăsare după pornire, sistemul solicită forța maximă a utilizatorului și ajustează sensibilitatea. Senzorii au o precizie de ±10 grame, intervalul — de la 0 la 500+ grame. Dezvoltatorul poate obține valoarea force prin UITouch.force (normalizată de la 0.0 la maxim) sau UITouch.maximumPossibleForce.

swift
// Verificarea disponibilității 3D Touch și citirea forței de apăsare
class ForceTouchViewController: UIViewController {

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

        // Verificarea suportului Force Touch pe dispozitiv
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // Dispozitivul nu suportă 3D Touch
            return
        }

        // Citirea forței de apăsare (0.0 — max)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // Normalizare în intervalul 0.0–1.0 pentru vizualizare
        let normalizedForce = force / maxForce

        // Reacție vizuală la forța de apăsare (scalarea elementului)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

Limitări: 3D Touch funcționează doar cu atingere activă (UITouch.phase == .began sau .moved). După eliberare, valoarea force se resetează. Valoarea maximă a force variază între dispozitive: iPhone 6S — 6.6666, iPhone 7/X — până la 20.0 (din cauza calibrării diferite). Nu utilizați force pentru acțiuni critice — utilizatorul poate să nu știe cu ce forță să apese. Oferiți întotdeauna o alternativă prin Haptic Touch (Long Press).

Peek and Pop: modelul UX al apăsării forțate

Peek and Pop — modelul UX original Apple, introdus cu 3D Touch în iPhone 6S. Peek — apăsare ușoară (force ~0.5–1.0) care arată o previzualizare a conținutului (email, link, fotografie) sub forma unei cărți de previzualizare. Pop — apăsare mai profundă (force ~2.0+) care deschide conținutul pe ecran complet. Peek suporta acțiuni în partea de jos (share, copy, reply), accesibile prin glisarea în sus pe cartea de previzualizare.

Implementarea Peek and Pop în UIKit includea trei componente: UIViewControllerPreviewingDelegate (protocol cu metodele previewingContext(_:viewControllerForLocation:) și previewingContext(_:commit:)), UIPreviewAction (acțiuni în partea de jos) și înregistrarea prin registerForPreviewing(with:sourceView:). Dezvoltatorul specifica care ViewController să fie afișat la Peek și cum să se deschidă la Pop. Sistemul adăuga automat animație de paralaxă și estompare a fundalului.

GestForță (norm.)AcțiuneEfect vizual
Atingere (Touch)0.0–0.3Interacțiune obișnuităEvidențierea elementului
Apăsare ușoară (Peek)0.5–1.0Previzualizare conținutCarte cu estompare fundal
Apăsare profundă (Pop)2.0+Deschidere pe ecran completAnimație de desfășurare a cărții
Glisare în susAcțiuni (share, copy)Grup UIPreviewAction

Tranziția la UIContextMenuInteraction (iOS 13): Apple a înlocuit Peek and Pop cu meniuri contextuale prin UIContextMenuInteraction. Noul API este mai simplu: nu necesită UIViewControllerPreviewingDelegate, suportă meniuri ierarhice (submenus), iconițe SF Symbols și funcționează la fel cu 3D Touch și Haptic Touch. Migrare: registerForPreviewing este depreciat din iOS 13. Înlocuiți-l cu UIContextMenuConfiguration, care se adaptează automat la capacitățile dispozitivului.

Meniuri contextuale: UIContextMenuInteraction

UIContextMenuInteraction — API modern iOS pentru meniuri contextuale, disponibil din iOS 13. Se adaugă la orice UIView prin addInteraction(_:). Delegatul UIContextMenuInteractionDelegate furnizează configurația meniului: UIContextMenuConfiguration cu identificator, previewProvider (opțional, pentru previzualizare) și actionProvider (matrice de UIAction sau UIMenu). Meniul contextual se activează prin 3D Touch (dacă este disponibil) sau Haptic Touch (Long Press pe celelalte dispozitive).

swift
// UIContextMenuInteraction cu meniu ierarhic
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: "Partajează",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

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

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

            return UIMenu(title: "Acțiuni", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration suportă previewProvider — un controler afișat ca previzualizare. Dacă previewProvider este nil, meniul contextual este afișat fără previzualizare. Pentru ajustarea dimensiunii și aspectului previzualizării se utilizează UIContextMenuContentPreviewProvider. Meniurile contextuale primesc automat feedback tactil (Haptic Touch Engine) și animație de apariție (scale + fade).

Haptic Touch vs 3D Touch: comparație

Haptic Touch și 3D Touch — tehnologii diferite care duc la același rezultat. 3D Touch este hardware (senzori de presiune în ecran), Haptic Touch este software (Long Press + Taptic Engine pentru simulare tactilă). 3D Touch necesită costuri de producție (strat suplimentar de senzori), crește grosimea ecranului și complexitatea reparațiilor. Haptic Touch este mai ieftin, mai simplu de produs și disponibil pe toate dispozitivele moderne (iPhone SE 2020, iPhone 11–16, iPad, iPod touch).

Parametru3D TouchHaptic Touch
PrincipiuMăsurarea presiunii (grame)Măsurarea timpului (milisecunde)
DisponibilitateiPhone 6S–XS (limitat)iPhone XR+, iPad, iPod touch
VitezăInstant (~100 ms)Cu întârziere (~500 ms)
Niveluri de apăsare2 (peek + pop)1 (meniu contextual)
Feedback tactilTaptic Engine (simulare clic)Taptic Engine (simulare clic)
App StoreQuick Actions pe iconițăQuick Actions pe iconiță
CalibrareAuto-calibrare la forța utilizatoruluiNu este necesară
ReparabilitateComplexă (senzori în ecran)Standard

Impact asupra UX: viteza 3D Touch este mai mare — utilizatorul primește meniul contextual imediat la apăsarea forțată. Haptic Touch necesită o pauză de 500 ms, ceea ce se simte mai lent. Cu toate acestea, Apple compensează acest lucru prin feedback tactil și animație vizuală. Utilizatorii care trec de la 3D Touch la Haptic Touch observă adesea diferența de viteză. Pentru dezvoltatori, migrarea este transparentă: UIContextMenuInteraction funcționează la fel pe ambele tehnologii.

Unde se aplică apăsarea forțată

Quick Actions — meniu contextual pe iconița aplicației pe ecranul principal. Apăsarea forțată (3D Touch) sau Long Press (Haptic Touch) pe iconiță afișează până la 4 acțiuni rapide: "Mesaj nou" (Messages), "Fă o fotografie" (Camera), "Caută" (Safari). Se implementează prin cheia Info.plist UIApplicationShortcutItems sau prin delegatul UIApplicationShortcutItem. Quick Actions sunt disponibile pe toate dispozitivele cu iOS 13+ (Haptic Touch) sau 3D Touch.

Tastatură-trackpad — apăsarea forțată pe tastatura iOS o comută în modul trackpad: tastele devin inactive, iar mișcarea degetului mută cursorul. 3D Touch activa trackpad-ul prin apăsare forțată în orice loc al tastaturii. Haptic Touch activează trackpad-ul prin apăsare lungă pe bara de spațiu (spacebar). Modul trackpad a devenit una dintre cele mai populare aplicații ale 3D Touch — utilizatorii apreciază poziționarea precisă a cursorului la editarea textului.

Previzualizarea linkurilor și fotografiilor — apăsarea forțată pe un link în Safari arată o previzualizare a paginii (peek) fără a naviga. Similar: apăsarea pe o fotografie în Messages deschide o versiune mărită. Glisarea în sus în modul peek arată acțiunile: "Deschide", "Adaugă la lista de lectură", "Copiază". Toate aceste scenarii funcționează prin UIContextMenuInteraction în versiunile moderne de iOS.

Desen și aplicații creative — în Procreate, Photoshop și alte aplicații de desen, forța de apăsare 3D Touch controlează grosimea pensulei, opacitatea sau saturația culorii. Aplicațiile citesc UITouch.force (0.0–1.0) și îl transformă în parametri ai instrumentului. Cu toate acestea, pentru desen, Apple Pencil pe iPad oferă un control mai precis al presiunii (cu suport pentru înclinare și azimut), deci 3D Touch în aplicațiile creative pe iPhone este mai puțin solicitat.

Întrebări frecvente

Care este diferența dintre 3D Touch și Haptic Touch?

3D Touch — tehnologie hardware care măsoară forța de apăsare prin senzori capacitivi în ecran (iPhone 6S–XS). Haptic Touch — imitație software care utilizează Long Press (menținere) și feedback tactil Taptic Engine. 3D Touch este mai rapid (100 ms vs 500 ms) și suportă două niveluri de forță (peek + pop). Haptic Touch este disponibil pe toate dispozitivele cu iOS 13+, inclusiv iPhone XR, toate modelele iPhone 11–16, iPad și iPod touch.

Cum verific dacă dispozitivul suportă 3D Touch?

În cod, utilizați traitCollection.forceTouchCapability. Valoarea .available — 3D Touch este suportat, .unavailable — nu, .unknown — încă nedeterminat (așteptați traitCollectionDidChange). Pe dispozitivele cu Haptic Touch, forceTouchCapability returnează .unavailable, deoarece Haptic Touch nu utilizează senzori hardware de forță. Pentru utilizatori verificare: Setări → General → Accesibilitate → 3D Touch (doar pe iPhone-uri vechi).

De ce a renunțat Apple la 3D Touch?

Apple a înlocuit 3D Touch cu Haptic Touch din mai multe motive: costul ridicat de producție al ecranelor cu senzori de presiune, complexitatea reparațiilor (senzorii integrați în ecran), conștientizarea limitată a utilizatorilor (mulți nu cunoșteau funcția) și tranziția la ecrane OLED cu Face ID, care sunt mai greu de calibrat pentru 3D Touch. Haptic Touch este mai ieftin, mai simplu și disponibil pe un număr mai mare de dispozitive.

Care iPhone-uri suportă 3D Touch?

3D Touch este suportat de: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. iPhone XR nu are 3D Touch (primul cu Haptic Touch). Toate modelele iPhone 11, 12, 13, 14, 15, 16 și SE (generațiile 2 și 3) utilizează Haptic Touch. iPad nu a avut niciodată 3D Touch. Pe dispozitivele cu 3D Touch sunt disponibile și setări de sensibilitate (Setări → General → Accesibilitate → 3D Touch).

Pot emula 3D Touch pe dispozitive fără el?

Da, iOS emulează automat 3D Touch prin Haptic Touch pe dispozitive fără suport hardware. API-ul UIContextMenuInteraction funcționează la fel pe toate dispozitivele — sistemul alege singur declanșatorul (3D Touch sau Long Press). Pentru codul dvs. este transparent: meniul contextual apare pe toate dispozitivele cu iOS 13+. Nu trebuie să scrieți logică separată pentru 3D Touch și Haptic Touch — utilizați UIContextMenuConfiguration.

Rezumat

  • 3D Touch — tehnologie hardware de măsurare a forței de apăsare prin senzori în ecran (iPhone 6S–XS)
  • Haptic Touch — înlocuitor software care utilizează Long Press cu feedback tactil (iOS 13+)
  • Force Touch — tehnologie cu senzori capacitivi pentru măsurarea presiunii cu precizie de ~10 g
  • Peek and Pop — model UX original cu două niveluri de apăsare (previzualizare și deschidere)
  • UIContextMenuInteraction — API modern iOS pentru meniuri contextuale, comun pentru ambele tehnologii
  • Quick Actions — meniu contextual pe iconița aplicației pentru acțiuni rapide
  • UIForceTouchCapability — verificarea disponibilității 3D Touch prin traitCollection

Vom dezvolta o aplicație mobilă la cheie

IT Sectr creează aplicații iOS și Android pentru startup-uri și afaceri din 2017. Vă vom consilia și vă vom propune cea mai bună soluție.

Discutați proiectul

Citiți și