Sobes.tech
Junior — Middle

Jak je zpracováváno více posluchačů připojených k jednomu události kliknutí?

sobes.tech AI

Odpověď od AI

V iOS, pokud je k jednomu události, například klepnutí (touchUpInside), přiřazeno několik posluchačů (target-action), jsou volány v pořadí jejich přidání. Každý posluchač obdrží událost a může vykonat svou logiku.

Pokud je třeba řídit pořadí nebo zabránit dalšímu zpracování, lze to spravovat uvnitř obsluhy, například vypnutím ostatních posluchačů nebo použitím příznaků. Standardní mechanismus UIKit však neumožňuje přímo zastavit šíření události mezi posluchači.

Příklad přidání několika obsluh k UIButton:

button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)

@objc func firstHandler() {
    print("První obsluha")
}

@objc func secondHandler() {
    print("Druhá obsluha")
}

Po kliknutí budou oba obsluhy volány postupně.