Přejetí v mobilních aplikacích — typy gest a implementace

Autor: IT Sectr Publikováno: 2026-08-03 Doba čtení: 7 min

Přejetí je gesto posouvání prstem po obrazovce, které se stalo jedním z hlavních způsobů interakce v mobilních rozhraních. Od jednoduchého procházení fotografií až po mazání e-mailů — přejetí nahradilo mnoho tlačítek a učinilo ovládání přirozenějším. Podle Apple Human Interface Guidelines (2024) je gesto posouvání druhým nejčastěji používaným po klepnutí a tvoří 22% všech interakcí v mobilních aplikacích.

Hlavní body

  • Přejetí — gesto posouvání, při kterém se prst pohybuje po obrazovce určitým směrem
  • Směry — vodorovné (doleva/doprava) a svislé (nahoru/dolů) posouvání
  • Hlavní scénáře — mazání, navigace, přepínání karet, pull-to-refresh
  • Doba trvání gesta — od 100 do 500 ms, při delší době je rozpoznáno jako přetažení (drag)
  • Implementace — UIGestureRecognizer na iOS, GestureDetector na Android, dotykové události na webu

Co je přejetí v mobilních rozhraních

Přejetí (swipe) je gesto, při kterém uživatel pohybuje prstem po obrazovce určitým směrem, čímž zahajuje akci. Na rozdíl od klepnutí (krátkého dotyku) přejetí zahrnuje pohyb a kontakt s obrazovkou po celou dobu trvání gesta.

Historie přejetí začala prvním iPhonem v roce 2007 — gesto odemknutí „slide to unlock” se stalo poznávacím znamením mobilních rozhraní. Dnes se přejetí používá v tisících aplikací pro navigaci, správu obsahu a organizaci informací.

Podle UX Planet (2025) vykazují aplikace s ovládáním gesty (včetně přejetí) o 18% vyšší zapojení uživatelů. Přejetí je vnímáno jako přirozenější akce ve srovnání se stisknutím tlačítka, protože napodobuje fyzický pohyb objektů.

Parametry rozpoznávání posouvání

Hlavní parametry, které určují, zda je gesto posouvání: minimální vzdálenost (obvykle 30–50 pixelů), maximální odchylka od přímky (ne více než 15–20 stupňů) a maximální doba kontaktu (do 500 ms). Pokud prst zůstane na obrazovce déle, je gesto klasifikováno jako přetažení (drag) nebo dlouhé stisknutí (long press).

Typy posouvání podle směru

Podle směru pohybu se posouvání dělí na čtyři základní typy: doleva, doprava, nahoru a dolů. Každý typ má svůj účel a kontext použití.

Typ posouváníAkcePříklad použití
DolevaMazání, archivace, skrytíMazání e-mailu v Mail, skrytí v Tinder
DopravaPotvrzení, zobrazeníLike v Tinder, označení „Přečteno”
NahoruAktualizace, zavřeníPull-to-refresh, přejetí pro zavření panelu
DolůNavigace zpět, otevřeníPřejetí dolů pro návrat v iOS, Notification Center

Vodorovné posouvání (doleva/doprava) se nejčastěji používá pro správu jednotlivých prvků — mazání, archivaci, procházení. Svislé posouvání (nahoru/dolů) — pro navigaci mezi obrazovkami a aktualizaci obsahu. Podle Material Design Guidelines (2024) je vodorovné posouvání pohodlnější pro pravoruké: pohyb doleva palcem je na pravé ruce přirozenější.

Víceprsté posouvání

Posouvání dvěma a třemi prsty se používá pro pokročilé akce. Dvěma prsty — přepínání mezi plochami na iPadu, zpětí akce (three-finger swipe). Třemi prsty — símek obrazovky na některých zařízeních. Víceprstá gesta jsou však méně intuitivní a vyžadují učení uživatele.

Implementace posouvání na iOS

Na iOS je zpracování gest založeno na UIGestureRecognizer — abstraktní třídě, která analyzuje sekvenci dotykových událostí a určuje, zda odpovídá konkrétnímu gestu.

swift
import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let swipeLeft = UISwipeGestureRecognizer(
            target: self,
            action: #selector(handleSwipe)
        )
        swipeLeft.direction = .left
        view.addGestureRecognizer(swipeLeft)
    }

    @objc func handleSwipe(sender: UISwipeGestureRecognizer) {
        print("Posuňte doleva")
    }
}

UISwipeGestureRecognizer podporuje nastavení směru (direction) a počtu prstů (numberOfTouchesRequired). Ve výchozím nastavení je vyžadován jeden prst a směr doprava. Pro určení jiných směrů je třeba výslovně nastavit direction: .left, .up, .down.

API vyšší úrovně — UICollectionViewLayout s podporou swipe akcí. Počínaje iOS 11 podporují tabulky a kolekce vestavěné swipe akce prostřednictvím UISwipeActionsConfiguration, což umožňuje přidání tlačítek pro mazání nebo archivaci bez ručního zpracování gest.

Implementace posouvání na Android

Na Android se zpracování posouvání provádí prostřednictvím GestureDetector — třídy, která analyzuje MotionEvents a volá odpovídající metody zpětného volání.

kotlin
class SwipeActivity : AppCompatActivity() {
    private val swipeThreshold = 100

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        val gestureDetector = GestureDetector(this, object : GestureDetector.SimpleOnGestureListener() {
            override fun onFling(
                e1: MotionEvent, e2: MotionEvent,
                velocityX: Float, velocityY: Float
            ): Boolean {
                val dx = e2.x - e1.x
                if (dx > swipeThreshold) {
                    println("Posuňte doprava")
                }
                return true
            }
        })
    }
}

Metoda onFling v GestureDetector je volána, když uživatel rychle posune prstem po obrazovce. Obdrží startovní a koncové souřadnice (e1, e2) a rychlost pohybu (velocityX, velocityY). Pro určení směru se porovnává rozdíl souřadnic na ose X nebo Y.

Knihovna AndroidX poskytuje pohodlnější API: ViewCompat.setSwipeRefreshLayout pro pull-to-refresh, RecyclerView s ItemTouchHelper pro swipe akce v seznamech. ItemTouchHelper umožňuje přidat funkcionalitu posouvání s vizuální zpětnou vazbou — ikonou, barvou pozadí a animací.

Posouvání ve webových aplikacích

Ve vývoji webu se pro zpracování posouvání používají události Touch Events API (touchstart, touchmove, touchend) a pomocné knihovny jako Hammer.js nebo Swiper.js.

js
let startX = 0;
let startY = 0;
const threshold = 50;

element.addEventListener("touchstart", (e) => {
    startX = e.touches[0].clientX;
    startY = e.touches[0].clientY;
});

element.addEventListener("touchend", (e) => {
    const dx = e.changedTouches[0].clientX - startX;
    const dy = e.changedTouches[0].clientY - startY;
    if (Math.abs(dx) > threshold) {
        console.log(dx > 0 ? "Posuňte doprava" : "Posuňte doleva");
    }
});

Touch Events API — nativní způsob zpracování gest v prohlížeči. Událost touchstart zaznamenává počáteční souřadnice, touchmove sleduje pohyb, touchend určuje výsledek. Prahová hodnota (threshold) odfiltrovává náhodné dotyky.

Podle Can I Use (2026) je Touch Events API podporováno 98% prohlížečů. Pro složité scénáře gest (vícenásobná posouvání, rozpoznání směru) se doporučuje použít knihovnu Hammer.js, která abstrahuje nízkoúrovňové zpracování a poskytuje přehledné API.

UX vzory s posouváním

Úspěšné UX vzory s posouváním se formovaly během let vývoje mobilních rozhraní. Jejich použití zaručuje, že uživatel pochopí, jak gesto funguje, bez dalšího učení.

Vzor „Swipe to Delete” — nejčastější. Posunutí doleva na prvku seznamu otevírá tlačítko pro smazání. Standardizováno na iOS (SwipeActionsConfiguration) a Android (ItemTouchHelper). Uživatelé očekávají, že posunutí doleva prvek smaže nebo archivuje.

Vzor „Swipe to Go Back” — posunutí od levého okraje obrazovky pro návrat na předchozí obrazovku. Stal se standardem na iOS po iPhonu X. Na Androidu podobná navigace funguje prostřednictvím systémového gesta. Je důležité, aby nedocházelo ke konfliktu s tímto systémovým gestem ve vašich aplikacích.

Vzor „Pull to Refresh” — posunutí dolů pro aktualizaci obsahu. Vynalezl Loren Brichter pro Tweetie (2008), nyní se používá v milionech aplikací. Implementován ve standardních komponentech obou platforem.

  • Zpětná vazba — prvek by se měl pohybovat spolu s prstem a ukazovat výsledek před dokončením posouvání
  • Konflikty gest — vyhněte se současné podpoře vodorovného posouvání a rolování na stejném prvku
  • Zjistitelnost — první akce posouvání by měly být doprovázeny vizuálním nápovědou
  • Zrušení — uživatel by měl mít možnost zrušit posouvání vrácením prstu do původní polohy

Často kladené dotazy

Čím se liší posouvání od drag (přetažení)?

Posouvání — rychlý pohyb prstu s následným odtržením. Drag — pomalý přesun s neustálým kontaktem. Hlavní rozdíl je v rychlosti: u posouvání je důležitá prahová hodnota velocity, u drag — pouze souřadnice pohybu.

Jaká je minimální vzdálenost pro rozpoznání posouvání?

iOS a Android používají práh asi 30–50 pixelů. Pro webové aplikace se doporučuje práh 40–60 pixelů. Menší hodnota vede k falešným aktivacím při rolování, větší vyžaduje příliš široké pohyby.

Jak se vyhnout konfliktu posouvání s rolováním?

Určete prioritu gesta podle směru: vodorovné posouvání blokuje svislé rolování, svislé posouvání blokuje vodorovné rolování. Na iOS použijte metodu UIScrollViewDelegate gestureRecognizerShouldBegin pro řízení priority.

Je třeba naučit uživatele posouvání?

Pro běžné posouvání (mazání, návrat) není učení nutné — uživatelé je znají. Pro jedinečná gesta (posouvání třemi prsty, nestandardní směr) je vyžadováno školení s vizuální ukázkou.

Jak zpřístupnit posouvání uživatelům s omezenou motorikou?

Vždy duplikujte akce posouvání tlačítky. Zvyšte práh aktivace na 70–100 pixelů a timeout na 800 ms pro uživatele s třesem rukou. Použijte VoiceOver/TalkBack pro oznámení dostupných akcí posouvání.

Shrnutí

  • Posouvání — gesto pohybu prstu po obrazovce, druhé nejoblíbenější po klepnutí
  • Typy podle směru — doleva (mazání), doprava (potvrzení), nahoru (aktualizace), dolů (návrat)
  • Implementace na iOS — UISwipeGestureRecognizer, UISwipeActionsConfiguration pro seznamy
  • Implementace na Android — GestureDetector.onFling, ItemTouchHelper pro RecyclerView
  • Implementace na webu — Touch Events API nebo knihovny Hammer.js, Swiper.js
  • UX vzory — swipe to delete, swipe to go back, pull to refresh — osvědčená řešení

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é