Junior — Middle
Kā tiek veikta vairāku klausītāju apstrāde, kas ir saistīti ar vienu klikšķa notikumu?
sobes.tech AI
Atbilde no AI
iOS gadījumā, ja vienam notikumam, piemēram, klikšķim (touchUpInside), ir piesaistīti vairāki klausītāji (target-action), tie tiek izsaukti pēc pievienošanas secības. Katrs klausītājs saņem notikumu un var izpildīt savu loģiku.
Ja vēlaties kontrolēt secību vai novērst turpmāku apstrādi, to var vadīt iekšpusē, piemēram, deaktivizējot citus klausītājus vai izmantojot zīmes. Tomēr UIKit standarta mehānisms nepiedāvā iebūvētu veidu, kā apturēt notikuma izplatīšanos starp klausītājiem.
Piemērs, kā pievienot vairākus apstrādātājus UIButton:
button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)
@objc func firstHandler() {
print("Pirmā apstrādātājs")
}
@objc func secondHandler() {
print("Otrā apstrādātājs")
}
Klikšķa laikā abi apstrādātāji tiks izsaukti secīgi.