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 API за контекстне меније који ради са 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 ms) за активирање истих радњи. Тактилна повратна информација (haptic feedback) симулира осећај "клика", иако не долази до физичког притиска. 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 у екрану (разликује се од iPhone 3D Touch-а), која је уклоњена од 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+ грама. Програмер може добити вредност force преко 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). Након пуштања, вредност force се поништава. Максимална вредност force варира између уређаја: iPhone 6S — 6.6666, iPhone 7/X — до 20.0 (због другачије калибрације). Немојте користити force за критичне радње — корисник можда не зна којом снагом да притисне. Увек обезбедите алтернативу путем Haptic Touch-а (Long Press).

Peek and Pop: UX образац снажног притиска

Peek and Pop — оригинални Apple UX образац, представљен са 3D Touch-ом у iPhone 6S. Peek — лаки притисак (force ~0.5–1.0) који приказује преглед садржаја (е-пошта, линк, фотографија) у облику картице за преглед. Pop — дубљи притисак (force ~2.0+) који отвара садржај на целом екрану. Peek је подржавао радње при дну (share, copy, reply), доступне превлачењем нагоре на картици за преглед.

Имплементација 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+Отварање на целом екрануАнимација отварања картице
Превлачење нагореРадње (share, copy)Група UIPreviewAction

Прелазак на UIContextMenuInteraction (iOS 13): Apple је заменио Peek and Pop контекстним менијима путем UIContextMenuInteraction-а. Нови API је једноставнији: не захтева UIViewControllerPreviewingDelegate, подржава хијерархијске меније (submenus), иконице SF Symbols и ради исто са 3D Touch-ом и Haptic Touch-ом. Миграција: registerForPreviewing је застарео од iOS 13. Замените га са UIContextMenuConfiguration, који се аутоматски прилагођава могућностима уређаја.

Контекстни менији: UIContextMenuInteraction

UIContextMenuInteraction — савремени iOS API за контекстне меније, доступан од 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) и анимацију појављивања (scale + fade).

Haptic Touch vs 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 ms)Са кашњењем (~500 ms)
Нивои притиска2 (peek + pop)1 (контекстни мени)
Тактилна повратна информацијаTaptic Engine (симулација клика)Taptic Engine (симулација клика)
App StoreQuick Actions на иконициQuick Actions на иконици
КалибрацијаАуто-калибрација према снази корисникаНије потребна
ПоправљивостСложена (сензори у екрану)Стандардна

Утицај на UX: брзина 3D Touch-а је већа — корисник добија контекстни мени одмах при снажном притиску. Haptic Touch захтева паузу од 500 ms, што се осећа спорије. Међутим, Apple то компензује тактилним повратним информацијама и визуелном анимацијом. Корисници који прелазе са 3D Touch-а на Haptic Touch често примећују разлику у брзини. За програмере, миграција је транспарентна: UIContextMenuInteraction ради исто на обе технологије.

Где се примењује снажан притисак

Quick Actions — контекстни мени на иконици апликације на почетном екрану. Снажан притисак (3D Touch) или Long Press (Haptic Touch) на иконици приказује до 4 брзе радње: "Нова порука" (Messages), "Сликај" (Camera), "Претрага" (Safari). Имплементира се путем Info.plist кључа UIApplicationShortcutItems или путем делегата UIApplicationShortcutItem. Quick Actions су доступни на свим уређајима са iOS 13+ (Haptic Touch) или 3D Touch-ом.

Тастатура-тракпад — снажан притисак на iOS тастатуру пребацује је у режим тракпада: тастери постају неактивни, а покрет прста помера курсор. 3D Touch је активирао тракпад снажним притиском на било ком месту тастатуре. Haptic Touch активира тракпад дугим притиском на размакницу (spacebar). Режим тракпада постао је једна од најпопуларнијих примена 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 — софтверска имитација која користи Long Press (држање) и тактилне повратне информације Taptic Engine-а. 3D Touch је бржи (100 ms vs 500 ms) и подржава два нивоа снаге (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 (2. и 3. генерације) користе Haptic Touch. iPad никада није имао 3D Touch. На уређајима са 3D Touch-ом доступна су и подешавања осетљивости (Подешавања → Опште → Приступачност → 3D Touch).

Може ли се емулирати 3D Touch на уређајима без њега?

Да, iOS аутоматски емулира 3D Touch путем Haptic Touch-а на уређајима без хардверске подршке. API UIContextMenuInteraction ради исто на свим уређајима — систем сам бира окидач (3D Touch или Long Press). За ваш код је то транспарентно: контекстни мени се појављује на свим уређајима са iOS 13+. Не морате писати одвојену логику за 3D Touch и Haptic Touch — користите UIContextMenuConfiguration.

Резиме

  • 3D Touch — хардверска технологија мерења снаге притиска преко сензора у екрану (iPhone 6S–XS)
  • Haptic Touch — софтверска замена која користи Long Press са тактилним повратним информацијама (iOS 13+)
  • Force Touch — технологија капацитивних сензора за мерење притиска са прецизношћу ~10 г
  • Peek and Pop — оригинални UX образац са два нивоа притиска (преглед и отварање)
  • UIContextMenuInteraction — савремени iOS API за контекстне меније, заједнички за обе технологије
  • Quick Actions — контекстни мени на иконици апликације за брзе радње
  • UIForceTouchCapability — провера доступности 3D Touch-а путем traitCollection-а

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође