3D Touch: vad är det, Force Touch och Haptic Touch-teknologier

Författare: IT Sectr Publicerad: 2026-02-28 Lästid: 10 min

3D Touch — Apple-hårdvara som känner igen tryckkraften på iPhone-skärmen och dess mjukvaruersättning Haptic Touch, som fungerar baserat på beröringens varaktighet. 3D Touch använder kalibrerade trycksensorer monterade under skärmmatrisen (Force Touch) och gör det möjligt att skilja lätt tryck (peek) från djupt (pop). Från och med iOS 13 ersatte Apple 3D Touch med Haptic Touch — en teknik som simulerar kraftigt tryck via Long Press med haptisk återkoppling UIContextMenuInteraction.

Huvudpunkter

  • Tryckkraft — 3D Touch mäter tryck i gram; Haptic Touch använder hålltid
  • Peek and Pop — det ursprungliga UX-mönstret för 3D Touch: lätt tryck (peek) för förhandsvisning, djupt (pop) för att öppna
  • UIContextMenuInteraction — modernt iOS-API för kontextmenyer som fungerar med Haptic Touch
  • Force Touch — Apple-teknik som mäter tryck via kapacitiva sensorer i skärmen
  • UIForceTouchCapability — iOS-metod för att kontrollera tillgänglighet av 3D Touch på enheten

Vad är 3D Touch och Haptic Touch?

3D Touch — hårdvaru-inmatningsteknik som debuterade i iPhone 6S (2015). Under skärmytan finns kapacitiva sensorer som mäter avståndet mellan glaset och bakgrundsbelysningen. Vid tryck med fingret böjs glaset mikrometer, sensorer registrerar deformationens storlek och omvandlar den till ett kraftvärde (gram). iOS skiljer på tre nivåer: lätt beröring (touch), medelstarkt tryck (peek, ~200 g) och djupt tryck (pop, ~400 g).

Haptic Touch — mjukvaruersättning för 3D Touch, introducerad i iOS 13 (2019). Istället för att mäta tryck använder Haptic Touch Long Press (hålla fingret ~500 ms) för att aktivera samma åtgärder. Haptisk återkoppling (haptic feedback) simulerar känslan av ett "klick", även om inget fysiskt tryck sker. Apple bytte till Haptic Touch på grund av komplexiteten och höga produktionskostnaderna för 3D Touch-skärmar, särskilt vid övergången till OLED-paneler med Face ID.

Historisk bakgrund: 3D Touch dök upp i iPhone 6S och fanns kvar till iPhone XS (2018). iPhone XR (2018) blev den första enheten med Haptic Touch istället för 3D Touch. Från iPhone 11 (2019) och iOS 13 använder alla nya iPhones Haptic Touch. iPad fick aldrig 3D Touch — endast Haptic Touch från iPadOS 13. Apple Watch använder Force Touch-teknik i skärmen (skiljer sig från iPhone 3D Touch), som togs bort från watchOS 7 och Series 6.

Force Touch-teknik: hur tryck mäts

Force Touch — teknik för mätning av tryckkraft som används av Apple i iPhone 6S–XS (3D Touch), MacBook-styrplattor (2015+) och Apple Watch (Series 1–5). I grunden finns kapacitiva sensorer placerade runt skärmens omkrets. Vid tryck deformeras glaset med mikrometer, sensorer registrerar avståndsförändringen och beräknar kraften enligt en kalibreringskurva. Systemet tar hänsyn till omgivningstemperaturen (kalibrering var 24:e timme) och fingerposition (mitten av skärmen är känsligare).

Kalibrering — en kritisk aspekt av 3D Touch. Varje iPhone kalibreras individuellt i fabriken. iOS utför också dynamisk kalibrering: vid första trycket efter start begär systemet användarens maximala kraft och justerar känsligheten. Sensorerna har en noggrannhet på ±10 gram, intervall — från 0 till 500+ gram. Utvecklaren kan få kraftvärdet via UITouch.force (normaliserat från 0.0 till maximum) eller UITouch.maximumPossibleForce.

swift
// Kontrollera tillgänglighet av 3D Touch och läsa tryckkraft
class ForceTouchViewController: UIViewController {

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

        // Kontrollera Force Touch-stöd på enheten
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // Enheten stöder inte 3D Touch
            return
        }

        // Läsa tryckkraft (0.0 — max)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // Normalisering till intervall 0.0–1.0 för visualisering
        let normalizedForce = force / maxForce

        // Visuell reaktion på tryckkraft (skalning av element)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

Begränsningar: 3D Touch fungerar endast med aktiv beröring (UITouch.phase == .began eller .moved). Efter släpp återställs kraftvärdet. Maximalt kraftvärde varierar mellan enheter: iPhone 6S — 6.6666, iPhone 7/X — upp till 20.0 (på grund av annan kalibrering). Använd inte force för kritiska åtgärder — användaren vet kanske inte med vilken kraft den ska trycka. Ge alltid ett alternativ via Haptic Touch (Long Press).

Peek and Pop: UX-mönster för kraftigt tryck

Peek and Pop — det ursprungliga Apple UX-mönstret, introducerat med 3D Touch i iPhone 6S. Peek — lätt tryck (force ~0.5–1.0) som visar en förhandsvisning av innehåll (e-post, länk, foto) i form av ett förhandsgranskningskort. Pop — djupare tryck (force ~2.0+) som öppnar innehållet på helskärm. Peek stödde åtgärder längst ner (share, copy, reply), tillgängliga genom att svepa uppåt på förhandsgranskningskortet.

Implementering av Peek and Pop i UIKit omfattade tre komponenter: UIViewControllerPreviewingDelegate (protokoll med metoderna previewingContext(_:viewControllerForLocation:) och previewingContext(_:commit:)), UIPreviewAction (åtgärder längst ner) och registrering via registerForPreviewing(with:sourceView:). Utvecklaren specificerade vilken ViewController som skulle visas vid Peek och hur den skulle öppnas vid Pop. Systemet lade automatiskt till parallaxanimering och bakgrundsoskärpa.

GestKraft (norm.)ÅtgärdVisuell effekt
Beröring (Touch)0.0–0.3Vanlig interaktionMarkering av element
Lätt tryck (Peek)0.5–1.0Förhandsvisning av innehållKort med bakgrundsoskärpa
Djupt tryck (Pop)2.0+Öppna på helskärmAnimering av kortutvikning
Svep uppåtÅtgärder (share, copy)UIPreviewAction-grupp

Övergång till UIContextMenuInteraction (iOS 13): Apple ersatte Peek and Pop med kontextmenyer via UIContextMenuInteraction. Det nya API:et är enklare: kräver inte UIViewControllerPreviewingDelegate, stöder hierarkiska menyer (undermenyer), SF Symbols-ikoner och fungerar likadant med 3D Touch och Haptic Touch. Migrering: registerForPreviewing är föråldrat från iOS 13. Ersätt det med UIContextMenuConfiguration, som automatiskt anpassar sig till enhetens kapacitet.

Kontextmenyer: UIContextMenuInteraction

UIContextMenuInteraction — modernt iOS-API för kontextmenyer, tillgängligt från iOS 13. Läggs till valfri UIView via addInteraction(_:). Delegeten UIContextMenuInteractionDelegate tillhandahåller menykonfigurationen: UIContextMenuConfiguration med identifierare, previewProvider (valfritt, för förhandsvisning) och actionProvider (array av UIAction eller UIMenu). Kontextmenyn aktiveras via 3D Touch (om tillgängligt) eller Haptic Touch (Long Press på andra enheter).

swift
// UIContextMenuInteraction med hierarkisk meny
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: "Dela",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

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

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

            return UIMenu(title: "Åtgärder", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration stöder previewProvider — en kontrollenhet som visas som förhandsvisning. Om previewProvider är nil visas kontextmenyn utan förhandsvisning. För att justera storlek och utseende på förhandsvisningen används UIContextMenuContentPreviewProvider. Kontextmenyer får automatiskt haptisk återkoppling (Haptic Touch Engine) och visas med animering (scale + fade).

Haptic Touch vs 3D Touch: jämförelse

Haptic Touch och 3D Touch — olika teknologier som leder till samma resultat. 3D Touch är hårdvara (trycksensorer i skärmen), Haptic Touch är mjukvara (Long Press + Taptic Engine för haptisk simulering). 3D Touch kräver produktionskostnader (extra sensorlager), ökar skärmtjockleken och reparationskomplexiteten. Haptic Touch är billigare, enklare att producera och tillgängligt på alla moderna enheter (iPhone SE 2020, iPhone 11–16, iPad, iPod touch).

Parameter3D TouchHaptic Touch
PrincipTryckmätning (gram)Tidsmätning (millisekunder)
TillgänglighetiPhone 6S–XS (begränsad)iPhone XR+, iPad, iPod touch
HastighetOmedelbar (~100 ms)Med fördröjning (~500 ms)
Trycknivåer2 (peek + pop)1 (kontextmeny)
Haptisk återkopplingTaptic Engine (klicksimulering)Taptic Engine (klicksimulering)
App StoreQuick Actions på ikonQuick Actions på ikon
KalibreringAuto-kalibrering till användarens styrkaKrävs inte
ReparerbarhetKomplex (sensorer i skärmen)Standard

Inverkan på UX: hastigheten på 3D Touch är högre — användaren får kontextmenyn omedelbart vid kraftigt tryck. Haptic Touch kräver en paus på 500 ms, vilket känns långsammare. Apple kompenserar dock detta med haptisk återkoppling och visuell animering. Användare som går över från 3D Touch till Haptic Touch märker ofta skillnaden i hastighet. För utvecklare är migreringen transparent: UIContextMenuInteraction fungerar likadant på båda teknologierna.

Var tillämpas kraftigt tryck

Quick Actions — kontextmeny på appikonen på hemskärmen. Kraftigt tryck (3D Touch) eller Long Press (Haptic Touch) på ikonen visar upp till 4 snabbåtgärder: "Nytt meddelande" (Messages), "Ta foto" (Camera), "Sök" (Safari). Implementeras via Info.plist-nyckeln UIApplicationShortcutItems eller via delegeten UIApplicationShortcutItem. Quick Actions är tillgängliga på alla enheter med iOS 13+ (Haptic Touch) eller 3D Touch.

Tangentbord-styrplatta — kraftigt tryck på iOS-tangentbordet växlar det till styrplatteläge: tangenter blir inaktiva och fingerrörelse flyttar markören. 3D Touch aktiverade styrplattan med kraftigt tryck var som helst på tangentbordet. Haptic Touch aktiverar styrplattan med långt tryck på mellanslagstangenten (spacebar). Styrplatteläget har blivit en av de mest populära tillämpningarna av 3D Touch — användare uppskattar precisionspositionering av markören vid textredigering.

Förhandsvisning av länkar och foton — kraftigt tryck på en länk i Safari visar en förhandsvisning av sidan (peek) utan att navigera. På samma sätt: tryck på ett foto i Messages öppnar en förstorad version. Svep uppåt i peek-läge visar åtgärder: "Öppna", "Lägg till i lässlista", "Kopiera". Alla dessa scenarier fungerar via UIContextMenuInteraction i moderna versioner av iOS.

Ritning och kreativa appar — i Procreate, Photoshop och andra ritappar styr 3D Touch tryckkraften penseltjocklek, opacitet eller färgmättnad. Appar läser UITouch.force (0.0–1.0) och omvandlar till verktygsparametrar. För ritning ger dock Apple Pencil på iPad mer exakt tryckkontroll (med stöd för lutning och azimut), så 3D Touch i kreativa appar på iPhone är mindre efterfrågat.

Vanliga frågor

Vad är skillnaden mellan 3D Touch och Haptic Touch?

3D Touch — hårdvaruteknik som mäter tryckkraft via kapacitiva sensorer i skärmen (iPhone 6S–XS). Haptic Touch — mjukvaruimitation som använder Long Press (hålla) och haptisk återkoppling från Taptic Engine. 3D Touch är snabbare (100 ms vs 500 ms) och stöder två kraftnivåer (peek + pop). Haptic Touch är tillgängligt på alla enheter med iOS 13+, inklusive iPhone XR, alla modeller iPhone 11–16, iPad och iPod touch.

Hur kontrollerar jag om enheten stöder 3D Touch?

I koden använd traitCollection.forceTouchCapability. Värdet .available — 3D Touch stöds, .unavailable — inte, .unknown — har ännu inte fastställts (vänta på traitCollectionDidChange). På enheter med Haptic Touch returnerar forceTouchCapability .unavailable, eftersom Haptic Touch inte använder hårdvarusensorer för kraft. För användare kontroll: Inställningar → Allmänt → Hjälpmedel → 3D Touch (endast på äldre iPhones).

Varför övergav Apple 3D Touch?

Apple ersatte 3D Touch med Haptic Touch av flera skäl: höga produktionskostnader för skärmar med trycksensorer, reparationskomplexitet (sensorer integrerade i skärmen), begränsad användarmedvetenhet (många kände inte till funktionen) och övergången till OLED-skärmar med Face ID som är svårare att kalibrera för 3D Touch. Haptic Touch är billigare, enklare och tillgängligt på fler enheter.

Vilka iPhones stöder 3D Touch?

3D Touch stöds av: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. iPhone XR har inte 3D Touch (första med Haptic Touch). Alla modeller iPhone 11, 12, 13, 14, 15, 16 och SE (2:a och 3:e generationen) använder Haptic Touch. iPad har aldrig haft 3D Touch. På enheter med 3D Touch finns även känslighetsinställningar (Inställningar → Allmänt → Hjälpmedel → 3D Touch).

Kan man emulera 3D Touch på enheter utan det?

Ja, iOS emulerar automatiskt 3D Touch via Haptic Touch på enheter utan hårdvarustöd. UIContextMenuInteraction API fungerar likadant på alla enheter — systemet väljer själv utlösaren (3D Touch eller Long Press). För din kod är detta transparent: kontextmenyn visas på alla enheter med iOS 13+. Du behöver inte skriva separat logik för 3D Touch och Haptic Touch — använd UIContextMenuConfiguration.

Sammanfattning

  • 3D Touch — hårdvaruteknik för mätning av tryckkraft via sensorer i skärmen (iPhone 6S–XS)
  • Haptic Touch — mjukvaruersättning som använder Long Press med haptisk återkoppling (iOS 13+)
  • Force Touch — kapacitiv sensorteknik för tryckmätning med noggrannhet ~10 g
  • Peek and Pop — ursprungligt UX-mönster med två trycknivåer (förhandsvisning och öppning)
  • UIContextMenuInteraction — modernt iOS-API för kontextmenyer, gemensamt för båda teknologierna
  • Quick Actions — kontextmeny på appikonen för snabbåtgärder
  • UIForceTouchCapability — kontroll av 3D Touch-tillgänglighet via traitCollection

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också