3D Touch: co to je, technologie Force Touch a Haptic Touch

Autor: IT Sectr Publikováno: 2026-02-28 Doba čtení: 10 min

3D Touch — hardwarová technologie Apple, která rozpoznává sílu stisku na displeji iPhonu, a její softwarová náhrada Haptic Touch, fungující na základě délky dotyku. 3D Touch využívá kalibrované tlakové senzory umístěné pod matricí obrazovky (Force Touch) a umožňuje rozlišit lehký stisk (peek) a hluboký (pop). Od iOS 13 Apple nahradil 3D Touch technologií Haptic Touch — technologií simulující silný stisk pomocí Long Press s haptickou odezvou UIContextMenuInteraction.

Hlavní body

  • Síla stisku — 3D Touch měří tlak v gramech; Haptic Touch využívá dobu držení
  • Peek and Pop — původní UX vzor 3D Touch: lehký stisk (peek) pro náhled, hluboký (pop) pro otevření
  • UIContextMenuInteraction — moderní iOS API pro kontextová menu pracující s Haptic Touch
  • Force Touch — technologie Apple měřící tlak pomocí kapacitních senzorů v displeji
  • UIForceTouchCapability — metoda iOS pro kontrolu dostupnosti 3D Touch na zařízení

Co je 3D Touch a Haptic Touch?

3D Touch — hardwarová vstupní technologie, debutující v iPhone 6S (2015). Pod povrchem displeje jsou kapacitní senzory měřící vzdálenost mezi sklem a podsvícením. Při stisku prstem se sklo mikronově prohýbá, senzory zaznamenávají velikost deformace a převádějí ji na hodnotu síly (gramy). iOS rozlišuje tři úrovně: lehký dotyk (touch), střední stisk (peek, ~200 g) a hluboký stisk (pop, ~400 g).

Haptic Touch — softwarová náhrada 3D Touch, představená v iOS 13 (2019). Místo měření tlaku Haptic Touch využívá Long Press (držení prstu ~500 ms) k aktivaci stejných akcí. Haptická odezva (haptic feedback) simuluje pocit "kliknutí", i když nedochází k žádnému fyzickému stisku. Apple přešel na Haptic Touch kvůli složitosti a vysokým výrobním nákladům displejů 3D Touch, zejména při přechodu na OLED panely s Face ID.

Historické pozadí: 3D Touch se objevil v iPhone 6S a zůstal až do iPhone XS (2018). iPhone XR (2018) se stal prvním zařízením s Haptic Touch místo 3D Touch. Od iPhone 11 (2019) a iOS 13 všechna nová iPhony používají Haptic Touch. iPad nikdy nedostal 3D Touch — pouze Haptic Touch od iPadOS 13. Apple Watch používá technologii Force Touch v displeji (liší se od iPhone 3D Touch), která byla odstraněna od watchOS 7 a Series 6.

Technologie Force Touch: jak se měří tlak

Force Touch — technologie měření síly stisku používaná Apple v iPhone 6S–XS (3D Touch), trackpadech MacBook (2015+) a Apple Watch (Series 1–5). V základu jsou kapacitní senzory rozmístěné po obvodu displeje. Při stisku se sklo deformuje o mikrony, senzory zaznamenávají změnu vzdálenosti a vypočítávají sílu podle kalibrační křivky. Systém zohledňuje okolní teplotu (kalibrace každých 24 hodin) a polohu prstu (střed obrazovky je citlivější).

Kalibrace — kritický aspekt 3D Touch. Každý iPhone je kalibrován individuálně v továrně. iOS také provádí dynamickou kalibraci: při prvním stisku po spuštění systém požádá o maximální sílu uživatele a upraví citlivost. Senzory mají přesnost ±10 gramů, rozsah — od 0 do 500+ gramů. Vývojář může získat hodnotu force pomocí UITouch.force (normalizované od 0.0 do maxima) nebo UITouch.maximumPossibleForce.

swift
// Kontrola dostupnosti 3D Touch a čtení síly stisku
class ForceTouchViewController: UIViewController {

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

        // Kontrola podpory Force Touch na zařízení
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // Zařízení nepodporuje 3D Touch
            return
        }

        // Čtení síly stisku (0.0 — max)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // Normalizace do rozsahu 0.0–1.0 pro vizualizaci
        let normalizedForce = force / maxForce

        // Vizuální reakce na sílu stisku (měřítko prvku)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

Omezení: 3D Touch funguje pouze s aktivním dotykem (UITouch.phase == .began nebo .moved). Po uvolnění se hodnota force vynuluje. Maximální hodnota force se liší mezi zařízeními: iPhone 6S — 6.6666, iPhone 7/X — až 20.0 (kvůli odlišné kalibraci). Nepoužívejte force pro kritické akce — uživatel nemusí vědět, jakou silou mačkat. Vždy poskytněte alternativu přes Haptic Touch (Long Press).

Peek and Pop: UX vzor silového stisku

Peek and Pop — původní UX vzor Apple, představený s 3D Touch v iPhone 6S. Peek — lehký stisk (force ~0.5–1.0), který zobrazuje náhled obsahu (email, odkaz, fotka) ve formě náhledové karty. Pop — hlubší stisk (force ~2.0+), který otevírá obsah na celou obrazovku. Peek podporoval akce dole (share, copy, reply), přístupné posunutím nahoru na náhledové kartě.

Implementace Peek and Pop v UIKit zahrnovala tři komponenty: UIViewControllerPreviewingDelegate (protokol s metodami previewingContext(_:viewControllerForLocation:) a previewingContext(_:commit:)), UIPreviewAction (akce dole) a registraci přes registerForPreviewing(with:sourceView:). Vývojář určoval, který ViewController se zobrazí při Peek a jak se otevře při Pop. Systém automaticky přidával animaci paralaxy a rozostření pozadí.

GestoSíla (norm.)AkceVizuální efekt
Dotek (Touch)0.0–0.3Běžná interakceZvýraznění prvku
Lehký stisk (Peek)0.5–1.0Náhled obsahuKarta s rozostřením pozadí
Hluboký stisk (Pop)2.0+Otevření na celou obrazovkuAnimace rozbalení karty
Posun nahoruAkce (share, copy)Skupina UIPreviewAction

Přechod na UIContextMenuInteraction (iOS 13): Apple nahradil Peek and Pop kontextovými menu přes UIContextMenuInteraction. Nové API je jednodušší: nevyžaduje UIViewControllerPreviewingDelegate, podporuje hierarchická menu (podmenu), ikony SF Symbols a funguje stejně s 3D Touch i Haptic Touch. Migrace: registerForPreviewing je od iOS 13 zastaralý. Nahraďte jej UIContextMenuConfiguration, které se automaticky přizpůsobí možnostem zařízení.

Kontextová menu: UIContextMenuInteraction

UIContextMenuInteraction — moderní iOS API pro kontextová menu, dostupné od iOS 13. Přidává se k libovolnému UIView pomocí addInteraction(_:). Delegát UIContextMenuInteractionDelegate poskytuje konfiguraci menu: UIContextMenuConfiguration s identifikátorem, previewProvider (volitelně, pro náhled) a actionProvider (pole UIAction nebo UIMenu). Kontextové menu se aktivuje 3D Touch (pokud je k dispozici) nebo Haptic Touch (Long Press na ostatních zařízeních).

swift
// UIContextMenuInteraction s hierarchickým menu
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: "Sdílet",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

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

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

            return UIMenu(title: "Akce", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration podporuje previewProvider — controller zobrazený jako náhled. Pokud je previewProvider nil, kontextové menu se zobrazí bez náhledu. Pro přizpůsobení velikosti a vzhledu náhledu se používá UIContextMenuContentPreviewProvider. Kontextová menu automaticky získávají haptickou odezvu (Haptic Touch Engine) a animaci objevení (scale + fade).

Haptic Touch vs 3D Touch: srovnání

Haptic Touch a 3D Touch — různé technologie vedoucí ke stejnému výsledku. 3D Touch je hardwarový (tlakové senzory v displeji), Haptic Touch je softwarový (Long Press + Taptic Engine pro haptickou simulaci). 3D Touch vyžaduje výrobní náklady (další vrstva senzorů), zvyšuje tloušťku obrazovky a složitost oprav. Haptic Touch je levnější, jednodušší na výrobu a dostupný na všech moderních zařízeních (iPhone SE 2020, iPhone 11–16, iPad, iPod touch).

Parametr3D TouchHaptic Touch
PrincipMěření tlaku (gramy)Měření času (milisekundy)
DostupnostiPhone 6S–XS (omezená)iPhone XR+, iPad, iPod touch
RychlostOkamžitě (~100 ms)S prodlevou (~500 ms)
Úrovně stisku2 (peek + pop)1 (kontextové menu)
Haptická odezvaTaptic Engine (simulace kliknutí)Taptic Engine (simulace kliknutí)
App StoreQuick Actions na ikoněQuick Actions na ikoně
KalibraceAutomatická na sílu uživateleNení vyžadována
OpravitelnostSložitá (senzory v displeji)Standardní

Dopad na UX: rychlost 3D Touch je vyšší — uživatel obdrží kontextové menu okamžitě při silném stisku. Haptic Touch vyžaduje pauzu 500 ms, což působí pomaleji. Apple to však kompenzuje haptickou odezvou a vizuální animací. Uživatelé přecházející z 3D Touch na Haptic Touch si často všímají rozdílu v rychlosti. Pro vývojáře je migrace transparentní: UIContextMenuInteraction funguje stejně na obou technologiích.

Kde se silový stisk uplatňuje

Quick Actions — kontextové menu na ikoně aplikace na domovské obrazovce. Silný stisk (3D Touch) nebo Long Press (Haptic Touch) na ikoně zobrazí až 4 rychlé akce: "Nová zpráva" (Messages), "Vyfotit" (Camera), "Hledat" (Safari). Implementuje se přes klíč Info.plist UIApplicationShortcutItems nebo přes delegáta UIApplicationShortcutItem. Quick Actions jsou dostupné na všech zařízeních s iOS 13+ (Haptic Touch) nebo 3D Touch.

Klávesnice-trackpad — silný stisk na klávesnici iOS ji přepne do režimu trackpadu: klávesy se stanou neaktivními a pohyb prstu posouvá kurzor. 3D Touch aktivoval trackpad silným stiskem na libovolném místě klávesnice. Haptic Touch aktivuje trackpad dlouhým stiskem na mezerníku (spacebar). Režim trackpadu se stal jednou z nejoblíbenějších aplikací 3D Touch — uživatelé oceňují přesné umístění kurzoru při úpravě textu.

Náhled odkazů a fotek — silný stisk na odkaz v Safari zobrazí náhled stránky (peek) bez přechodu. Podobně: stisk na fotku v Messages otevře zvětšenou verzi. Posun nahoru v režimu peek zobrazí akce: "Otevřít", "Přidat do seznamu četby", "Kopírovat". Všechny tyto scénáře fungují přes UIContextMenuInteraction v moderních verzích iOS.

Kreslení a kreativní aplikace — v Procreate, Photoshop a dalších kreslicích aplikacích síla stisku 3D Touch řídí tloušťku štětce, neprůhlednost nebo sytost barvy. Aplikace čtou UITouch.force (0.0–1.0) a převádějí na parametry nástroje. Pro kreslení však Apple Pencil na iPadu poskytuje přesnější kontrolu tlaku (s podporou náklonu a azimutu), takže 3D Touch v kreativních aplikacích na iPhonu je méně žádaný.

Často kladené otázky

Jaký je rozdíl mezi 3D Touch a Haptic Touch?

3D Touch — hardwarová technologie měřící sílu stisku přes kapacitní senzory v displeji (iPhone 6S–XS). Haptic Touch — softwarová imitace využívající Long Press (držení) a haptickou odezvu Taptic Engine. 3D Touch je rychlejší (100 ms vs 500 ms) a podporuje dvě úrovně síly (peek + pop). Haptic Touch je dostupný na všech zařízeních s iOS 13+, včetně iPhone XR, všech modelů iPhone 11–16, iPadu a iPod touch.

Jak zkontrolovat, zda zařízení podporuje 3D Touch?

V kódu použijte traitCollection.forceTouchCapability. Hodnota .available — 3D Touch je podporován, .unavailable — ne, .unknown — ještě není určeno (počkejte na traitCollectionDidChange). Na zařízeních s Haptic Touch vrací forceTouchCapability .unavailable, protože Haptic Touch nepoužívá hardwarové senzory síly. Pro uživatele kontrola: Nastavení → Obecné → Zpřístupnění → 3D Touch (pouze na starších iPhonech).

Proč Apple opustil 3D Touch?

Apple nahradil 3D Touch Haptic Touch z několika důvodů: vysoké výrobní náklady displejů s tlakovými senzory, složitost oprav (senzory integrované v displeji), omezené povědomí uživatelů (mnozí funkci neznali) a přechod na OLED displeje s Face ID, které se hůře kalibrují pro 3D Touch. Haptic Touch je levnější, jednodušší a dostupný na větším počtu zařízení.

Které iPhony podporují 3D Touch?

3D Touch podporují: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. iPhone XR nemá 3D Touch (první s Haptic Touch). Všechny modely iPhone 11, 12, 13, 14, 15, 16 a SE (2. a 3. generace) používají Haptic Touch. iPad nikdy neměl 3D Touch. Na zařízeních s 3D Touch jsou také k dispozici nastavení citlivosti (Nastavení → Obecné → Zpřístupnění → 3D Touch).

Lze emulovat 3D Touch na zařízeních bez něj?

Ano, iOS automaticky emuluje 3D Touch prostřednictvím Haptic Touch na zařízeních bez hardwarové podpory. API UIContextMenuInteraction funguje stejně na všech zařízeních — systém sám vybírá spouštěč (3D Touch nebo Long Press). Pro váš kód je to transparentní: kontextové menu se zobrazí na všech zařízeních s iOS 13+. Nemusíte psát samostatnou logiku pro 3D Touch a Haptic Touch — použijte UIContextMenuConfiguration.

Shrnutí

  • 3D Touch — hardwarová technologie měření síly stisku přes senzory v displeji (iPhone 6S–XS)
  • Haptic Touch — softwarová náhrada využívající Long Press s haptickou odezvou (iOS 13+)
  • Force Touch — technologie kapacitních senzorů pro měření tlaku s přesností ~10 g
  • Peek and Pop — původní UX vzor se dvěma úrovněmi stisku (náhled a otevření)
  • UIContextMenuInteraction — moderní iOS API pro kontextová menu, společné pro obě technologie
  • Quick Actions — kontextové menu na ikoně aplikace pro rychlé akce
  • UIForceTouchCapability — kontrola dostupnosti 3D Touch pomocí traitCollection

Vyvineme mobilní aplikaci na klíč

IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.

Prodiskutovat projekt

Přečtěte si také