Sobes.tech
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 თანმიმდევრობით იძახება.