Junior — Middle
როგორ ხორციელდება ერთ კლიკის მოვლენის დაკავშირებული მრავალი მსმენელის დამუშავება?
sobes.tech AI
პასუხი AI-სგან
iOS-ში, თუ ერთ მოვლაზე, მაგალითად, კლიკზე (touchUpInside), დაკავშირებულია რამდენიმე მსმენელი (target-action), ისინი იძახებენ თანმიმდევრობით დამატების წესით. თითოეული მსმენელი იღებს მოვლენის და შეუძლია თავისი ლოგიკის შესრულება.
თუ გსურთ წესის კონტროლი ან შემდგომი დამუშავების თავიდან აცილება, შეგიძლიათ ამის მართვა handler-ის შიგნით, მაგალითად, სხვა მსმენელების გამორთვით ან ნიშნების გამოყენებით. თუმცა, UIKit-ის სტანდარტული მექანიზმი არ უზრუნველყოფს ინტრინსიკულ გზას მოვლენის გავრცელების შეჩერებისთვის მსმენელებს შორის.
მაგალითი, რამდენიმე handler-ის დამატება UIButton-ზე:
button.addTarget(self, action: #selector(firstHandler), for: .touchUpInside)
button.addTarget(self, action: #selector(secondHandler), for: .touchUpInside)
@objc func firstHandler() {
print("პირველი handler")
}
@objc func secondHandler() {
print("მეორე handler")
}
კლიკზე ორივე handler თანმიმდევრობით იძახება.