3D Touch: bu nədir, Force Touch və Haptic Touch texnologiyaları

Müəllif: IT Sectr Dərc olunub: 2026-02-28 Oxuma vaxtı: 10 dəq

3D Touch — iPhone ekranına təzyiq qüvvəsini tanıyan Apple-ın aparat texnologiyası və onun proqram əvəzedicisi Haptic Touch, toxunma müddəti əsasında işləyir. 3D Touch ekran matrisi altında quraşdırılmış kalibrlənmiş təzyiq sensorlarından (Force Touch) istifadə edir və yüngül təzyiqi (peek) dərin təzyiqdən (pop) ayırmağa imkan verir. iOS 13-dən etibarən Apple 3D Touch-ı Haptic Touch ilə əvəz etdi — bu, Long Press vasitəsilə güclü təzyiqi təqlid edən və toxunma əks-əlaqəsi verən texnologiyadır UIContextMenuInteraction.

Əsas məqamlar

  • Təzyiq qüvvəsi — 3D Touch təzyiqi qramla ölçür; Haptic Touch saxlama müddətindən istifadə edir
  • Peek and Pop — 3D Touch-ın orijinal UX nümunəsi: önbaxış üçün yüngül təzyiq (peek), açmaq üçün dərin (pop)
  • UIContextMenuInteraction — Haptic Touch ilə işləyən müasir iOS API-si kontekst menyuları üçün
  • Force Touch — ekranda tutum sensorları vasitəsilə təzyiqi ölçən Apple texnologiyası
  • UIForceTouchCapability — cihazda 3D Touch-ın mövcudluğunu yoxlamaq üçün iOS metodu

3D Touch və Haptic Touch nədir?

3D Touch — iPhone 6S-də (2015) debüt edən aparat giriş texnologiyası. Ekran səthinin altında şüşə ilə arxa işıqlandırma arasındakı məsafəni ölçən tutum sensorları yerləşir. Barmaqla basdıqda şüşə mikron qədər əyilir, sensorlar deformasiyanın böyüklüyünü qeyd edir və onu qüvvə dəyərinə (qram) çevirir. iOS üç səviyyəni fərqləndirir: yüngül toxunma (touch), orta təzyiq (peek, ~200 q) və dərin təzyiq (pop, ~400 q).

Haptic Touch — iOS 13-də (2019) təqdim edilmiş 3D Touch-ın proqram əvəzedicisi. Təzyiqi ölçmək əvəzinə Haptic Touch eyni hərəkətləri aktivləşdirmək üçün Long Press (barmağı ~500 ms saxlama) istifadə edir. Toxunma əks-əlaqəsi (haptic feedback) heç bir fiziki basma olmasa da, "klikləmə" hissini simulyasiya edir. Apple 3D Touch-dan Haptic Touch-a keçdi, çünki 3D Touch ekranlarının istehsalı mürəkkəb və bahalı idi, xüsusən də Face ID ilə OLED panellərə keçərkən.

Tarixi məlumat: 3D Touch iPhone 6S-də meydana çıxdı və iPhone XS-ə qədər (2018) qaldı. iPhone XR (2018) 3D Touch əvəzinə Haptic Touch ilə ilk cihaz oldu. iPhone 11-dən (2019) və iOS 13-dən başlayaraq bütün yeni iPhone-lar Haptic Touch istifadə edir. iPad heç vaxt 3D Touch almamışdır — yalnız iPadOS 13-dən Haptic Touch. Apple Watch ekranda Force Touch texnologiyasından istifadə edir (iPhone 3D Touch-dan fərqlənir), watchOS 7 və Series 6-dan etibarən silindi.

Force Touch texnologiyası: təzyiq necə ölçülür

Force Touch — Apple tərəfindən iPhone 6S–XS (3D Touch), MacBook trekpadlarında (2015+) və Apple Watch-da (Series 1–5) istifadə edilən təzyiq qüvvəsinin ölçülməsi texnologiyası. Əsasında ekranın perimetri boyunca yerləşən tutum sensorları dayanır. Basdıqda şüşə mikronlarla deformasiya olunur, sensorlar məsafə dəyişikliyini qeyd edir və kalibrləmə əyrisinə görə qüvvəni hesablayır. Sistem ətraf mühitin temperaturunu (hər 24 saatdan bir kalibrləmə) və barmağın mövqeyini (ekranın mərkəzi daha həssasdır) nəzərə alır.

Kalibrləmə — 3D Touch-ın kritik aspekti. Hər bir iPhone zavodda fərdi olaraq kalibrlənir. iOS həmçinin dinamik kalibrləmə aparır: yükləmədən sonra ilk basışda sistem istifadəçinin maksimum gücünü soruşur və həssaslığı tənzimləyir. Sensorların dəqiqliyi ±10 qram, diapazon — 0-dan 500+ qrama qədərdir. Tərtibatçı UITouch.force (0.0-dan maksimuma qədər normallaşdırılmış) və ya UITouch.maximumPossibleForce vasitəsilə qüvvə dəyərini əldə edə bilər.

swift
// 3D Touch-ın mövcudluğunu yoxlama və təzyiq qüvvəsini oxuma
class ForceTouchViewController: UIViewController {

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

        // Cihazda Force Touch dəstəyinin yoxlanması
        guard self.traitCollection.forceTouchCapability
                == UIForceTouchCapability.available else {
            // Cihaz 3D Touch-ı dəstəkləmir
            return
        }

        // Təzyiq qüvvəsinin oxunması (0.0 — maks)
        let force = touch.force      // 0.0 ... maximumPossibleForce
        let maxForce = touch.maximumPossibleForce

        // Vizualizasiya üçün 0.0–1.0 diapazonuna normallaşdırma
        let normalizedForce = force / maxForce

        // Təzyiq qüvvəsinə vizual reaksiya (elementin miqyası)
        forceView.transform = CGAffineTransform(scaleX: 1.0 + normalizedForce * 0.3,
                                                y: 1.0 + normalizedForce * 0.3)
    }
}

Məhdudiyyətlər: 3D Touch yalnız aktiv toxunma ilə işləyir (UITouch.phase == .began və ya .moved). Buraxdıqdan sonra qüvvə dəyəri sıfırlanır. Maksimum qüvvə dəyəri cihazlar arasında dəyişir: iPhone 6S — 6.6666, iPhone 7/X — 20.0-a qədər (fərqli kalibrləmə səbəbindən). Kritik hərəkətlər üçün qüvvədən istifadə etməyin — istifadəçi nə qədər güclü basacağını bilməyə bilər. Həmişə Haptic Touch (Long Press) vasitəsilə alternativ təmin edin.

Peek and Pop: güc təzyiqinin UX nümunəsi

Peek and Pop — iPhone 6S-də 3D Touch ilə təqdim edilmiş orijinal Apple UX nümunəsi. Peek — məzmunun önbaxışını (e-poçt, link, şəkil) önbaxış kartı şəklində göstərən yüngül təzyiq (force ~0.5–1.0). Pop — məzmunu tam ekranda açan daha dərin təzyiq (force ~2.0+). Peek önbaxış kartında yuxarı sürüşdürmə ilə əldə edilə bilən alt hərəkətləri (share, copy, reply) dəstəkləyirdi.

Peek and Pop-un tətbiqi UIKit-də üç komponenti əhatə edirdi: UIViewControllerPreviewingDelegate (previewingContext(_:viewControllerForLocation:) və previewingContext(_:commit:) metodları ilə protokol), UIPreviewAction (alt hərəkətlər) və registerForPreviewing(with:sourceView:) vasitəsilə qeydiyyat. Tərtibatçı Peek zamanı hansı ViewController-ın göstəriləcəyini və Pop zamanı onun necə açılacağını təyin edirdi. Sistem avtomatik olaraq paralaks animasiyası və fonun bulanmasını əlavə edirdi.

HərəkətGüc (norm.)FəaliyyətVizual effekt
Toxunma (Touch)0.0–0.3Adi qarşılıqlı əlaqəElementin vurğulanması
Yüngül təzyiq (Peek)0.5–1.0Məzmunun önbaxışıFon bulanması ilə kart
Dərin təzyiq (Pop)2.0+Tam ekranda açmaKartın açılma animasiyası
Yuxarı sürüşdürməHərəkətlər (share, copy)UIPreviewAction Group

UIContextMenuInteraction-a keçid (iOS 13): Apple Peek and Pop-u UIContextMenuInteraction vasitəsilə kontekst menyuları ilə əvəz etdi. Yeni API daha sadədir: UIViewControllerPreviewingDelegate tələb etmir, iyerarxik menyuları (submenus), SF Symbols ikonlarını dəstəkləyir və həm 3D Touch, həm də Haptic Touch ilə eyni işləyir. Miqrasiya: registerForPreviewing iOS 13-dən etibarən köhnəlmişdir. Onu UIContextMenuConfiguration ilə əvəz edin, o avtomatik olaraq cihazın imkanlarına uyğunlaşır.

Kontekst menyuları: UIContextMenuInteraction

UIContextMenuInteraction — iOS 13-dən etibarən mövcud olan kontekst menyuları üçün müasir iOS API-si. İstənilən UIView-ə addInteraction(_:) vasitəsilə əlavə edilir. UIContextMenuInteractionDelegate delegatı menyu konfiqurasiyasını təmin edir: identifikatorlu UIContextMenuConfiguration, previewProvider (istəyə bağlı, önbaxış üçün) və actionProvider (UIAction və ya UIMenu massivi). Kontekst menyusu 3D Touch (mövcud olduqda) və ya Haptic Touch (qalan cihazlarda Long Press) ilə aktivləşdirilir.

swift
// İyerarxik menyu ilə 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: "Paylaş",
                              image: UIImage(systemName: "square.and.arrow.up"),
                              handler: { _ in self.shareContent() })

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

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

            return UIMenu(title: "Hərəkətlər", children: [share, edit, delete])
        }
    }
}

UIContextMenuConfiguration previewProvider-ı dəstəkləyir — önbaxış kimi göstərilən kontroller. previewProvider nil olduqda, kontekst menyusu önbaxış olmadan göstərilir. Önbaxışın ölçüsünü və görünüşünü tənzimləmək üçün UIContextMenuContentPreviewProvider istifadə olunur. Kontekst menyuları avtomatik olaraq toxunma əks-əlaqəsi (Haptic Touch Engine) və görünmə animasiyası (scale + fade) alır.

Haptic Touch vs 3D Touch: müqayisə

Haptic Touch və 3D Touch — eyni nəticəyə aparan fərqli texnologiyalar. 3D Touch aparatdır (ekranda təzyiq sensorları), Haptic Touch proqramdır (Long Press + toxunma simulyasiyası üçün Taptic Engine). 3D Touch istehsal xərcləri tələb edir (əlavə sensor qatı), ekran qalınlığını və təmir mürəkkəbliyini artırır. Haptic Touch daha ucuz, istehsalı daha sadədir və bütün müasir cihazlarda mövcuddur (iPhone SE 2020, iPhone 11–16, iPad, iPod touch).

Parametr3D TouchHaptic Touch
PrinsipTəzyiq ölçülməsi (qram)Vaxt ölçülməsi (millisaniyə)
MövcudluqiPhone 6S–XS (məhdud)iPhone XR+, iPad, iPod touch
SürətDərhal (~100 ms)Gecikmə ilə (~500 ms)
Təzyiq səviyyələri2 (peek + pop)1 (kontekst menyusu)
Toxunma əks-əlaqəsiTaptic Engine (klikləmə simulyasiyası)Taptic Engine (klikləmə simulyasiyası)
App Storeİkonada Quick Actionsİkonada Quick Actions
Kalibrləməİstifadəçi gücünə avtomatik uyğunlaşmaTələb olunmur
Təmir edilə bilərlikMürəkkəb (sensorlar ekranda)Standart

UX-ə təsir: 3D Touch sürəti daha yüksəkdir — istifadəçi güclü basdıqda dərhal kontekst menyusu alır. Haptic Touch 500 ms fasilə tələb edir, bu daha yavaş hiss olunur. Lakin Apple bunu toxunma əks-əlaqəsi və vizual animasiya ilə kompensasiya edir. 3D Touch-dan Haptic Touch-a keçən istifadəçilər tez-tez sürət fərqini qeyd edirlər. Tərtibatçılar üçün miqrasiya şəffafdır: UIContextMenuInteraction hər iki texnologiyada eyni işləyir.

Güc təzyiqi harada tətbiq olunur

Quick Actions — ana ekranda tətbiq ikonasında kontekst menyusu. İkonada güclü təzyiq (3D Touch) və ya Long Press (Haptic Touch) 4 sürətli hərəkətə qədər göstərir: "Yeni mesaj" (Messages), "Şəkil çək" (Camera), "Axtar" (Safari). Info.plist açarı UIApplicationShortcutItems və ya UIApplicationShortcutItem delegatı vasitəsilə tətbiq edilir. Quick Actions iOS 13+ (Haptic Touch) və ya 3D Touch olan bütün cihazlarda mövcuddur.

Klaviatura-trekpad — iOS klaviaturasına güclü təzyiq onu trekpad rejiminə keçirir: düymələr qeyri-aktiv olur və barmaq hərəkəti kursoru yerləşdirir. 3D Touch klaviaturanın istənilən yerində güclü təzyiqlə trekpadı aktivləşdirirdi. Haptic Touch trekpaddı boşluq düyməsində (spacebar) uzun basma ilə aktivləşdirir. Trekpad rejimi 3D Touch-ın ən populyar tətbiqlərindən birinə çevrildi — istifadəçilər mətn redaktəsi zamanı kursorun dəqiq yerləşdirilməsini qiymətləndirirlər.

Linklərin və şəkillərin önbaxışı — Safari-də linkə güclü təzyiq keçid etmədən səhifənin önbaxışını (peek) göstərir. Eynilə: Messages-də şəkilə təzyiq böyüdülmüş versiyanı açır. Peek rejimində yuxarı sürüşdürmə hərəkətləri göstərir: "Aç", "Oxuma siyahısına əlavə et", "Kopyala". Bütün bu ssenarilər müasir iOS versiyalarında UIContextMenuInteraction vasitəsilə işləyir.

Rəsm və yaradıcı tətbiqlər — Procreate, Photoshop və digər rəsm tətbiqlərində 3D Touch təzyiq qüvvəsi fırçanın qalınlığını, şəffaflığını və ya rəng doymasını idarə edir. Tətbiqlər UITouch.force-u (0.0–1.0) oxuyur və alət parametrlərinə çevirir. Lakin rəsm üçün iPad-də Apple Pencil daha dəqiq təzyiq nəzarəti təmin edir (əyilmə və azimut dəstəyi ilə), buna görə də iPhone-da yaradıcı tətbiqlərdə 3D Touch daha az tələb olunur.

Tez-tez verilən suallar

3D Touch və Haptic Touch arasında fərq nədir?

3D Touch — ekrandakı tutum sensorları vasitəsilə təzyiq qüvvəsini ölçən aparat texnologiyası (iPhone 6S–XS). Haptic Touch — Long Press (saxlama) və Taptic Engine toxunma əks-əlaqəsindən istifadə edən proqram təqlidi. 3D Touch daha sürətlidir (100 ms vs 500 ms) və iki qüvvə səviyyəsini dəstəkləyir (peek + pop). Haptic Touch iOS 13+ olan bütün cihazlarda, o cümlədən iPhone XR, bütün iPhone 11–16 modelləri, iPad və iPod touch-da mövcuddur.

Cihazın 3D Touch-ı dəstəklədiyini necə yoxlamaq olar?

Koddakı traitCollection.forceTouchCapability istifadə edin. .available dəyəri — 3D Touch dəstəklənir, .unavailable — yox, .unknown — hələ müəyyən edilməyib (traitCollectionDidChange-i gözləyin). Haptic Touch olan cihazlarda forceTouchCapability .unavailable qaytarır, çünki Haptic Touch aparat güc sensorlarından istifadə etmir. İstifadəçilər üçün yoxlama: Parametrlər → Ümumi → Universal giriş → 3D Touch (yalnız köhnə iPhone-larda).

Apple nə üçün 3D Touch-dan imtina etdi?

Apple 3D Touch-ı Haptic Touch ilə bir neçə səbəbə görə əvəz etdi: təzyiq sensorları olan ekranların yüksək istehsal dəyəri, təmirin mürəkkəbliyi (sensorlar ekrana inteqrasiya edilmişdir), istifadəçilərin məhdud məlumatlılığı (çoxları funksiyanı bilmirdi) və 3D Touch üçün kalibrlənməsi çətin olan Face ID ilə OLED ekranlara keçid. Haptic Touch daha ucuz, daha sadədir və daha çox cihazda mövcuddur.

Hansı iPhone-lar 3D Touch-ı dəstəkləyir?

3D Touch dəstəkləyənlər: iPhone 6S, 6S Plus, 7, 7 Plus, 8, 8 Plus, X, XS, XS Max. iPhone XR 3D Touch-a malik deyil (Haptic Touch ilə ilk). Bütün iPhone 11, 12, 13, 14, 15, 16 və SE (2-ci və 3-cü nəsil) modelləri Haptic Touch istifadə edir. iPad heç vaxt 3D Touch-a malik olmayıb. 3D Touch olan cihazlarda həssaslıq parametrləri də mövcuddur (Parametrlər → Ümumi → Universal giriş → 3D Touch).

3D Touch olmayan cihazlarda onu emulyasiya etmək olarmı?

Bəli, iOS 3D Touch-ı avtomatik olaraq Haptic Touch vasitəsilə aparat dəstəyi olmayan cihazlarda emulyasiya edir. UIContextMenuInteraction API-si bütün cihazlarda eyni işləyir — sistem özü tətikleyicini seçir (3D Touch və ya Long Press). Kodunuz üçün bu şəffafdır: kontekst menyusu iOS 13+ olan bütün cihazlarda görünür. 3D Touch və Haptic Touch üçün ayrıca məntiq yazmağa ehtiyac yoxdur — UIContextMenuConfiguration istifadə edin.

Nəticə

  • 3D Touch — ekrandakı sensorlar vasitəsilə təzyiq qüvvəsinin ölçülməsi üçün aparat texnologiyası (iPhone 6S–XS)
  • Haptic Touch — toxunma əks-əlaqəsi ilə Long Press istifadə edən proqram əvəzedicisi (iOS 13+)
  • Force Touch — ~10 q dəqiqliklə təzyiq ölçülməsi üçün tutum sensor texnologiyası
  • Peek and Pop — iki təzyiq səviyyəsi ilə orijinal UX nümunəsi (önbaxış və açma)
  • UIContextMenuInteraction — hər iki texnologiya üçün vahid olan müasir iOS kontekst menyu API-si
  • Quick Actions — sürətli hərəkətlər üçün tətbiq ikonasında kontekst menyusu
  • UIForceTouchCapability — traitCollection vasitəsilə 3D Touch mövcudluğunun yoxlanılması

Açar təslim mobil tətbiq hazırlayacağıq

IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.

Layihəni müzakirə et

Həm də oxuyun