Sobes.tech
Junior — Middle

Kaip vyksta kelių klausytojų, susijusių su vienu paspaudimo įvykiu, apdorojimas?

sobes.tech AI

Atsakymas iš AI

iOS, jei vienam įvykiui, pavyzdžiui, paspaudimui (touchUpInside), yra priskirti keli klausytojai (target-action), jie kviečiami pagal pridėjimo tvarką. Kiekvienas klausytojas gauna įvykį ir gali vykdyti savo logiką.

Jei norite kontroliuoti tvarką arba užkirsti kelią tolesniam apdorojimui, galite tai valdyti viduje, pavyzdžiui, išjungdami kitus klausytojus arba naudodami žymas. Tačiau UIKit standartinis mechanizmas nepateikia įmontuoto būdo sustabdyti įvykio plitimą tarp klausytojų.

Pavyzdys, kaip pridėti kelis tvarkytojus prie UIButton:

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

@objc func firstHandler() {
    print("Pirmas tvarkytojas")
}

@objc func secondHandler() {
    print("Antras tvarkytojas")
}

Paspaudus, abu tvarkytojai bus iškviesti seka.