Junior — Middle
როგორ განსაზღვრავს აპლიკაცია, რომელი ინტერფეისის ნაწილი უნდა რეაგირებდეს სენსორულ შეხებაზე?
sobes.tech AI
პასუხი AI-სგან
iOS-ში, ინტერფეისის რომელ ნაწილს უნდა უპასუხოს სენსორულ შეხებას, hit-testing მექანიზმს იყენებს. როდესაც მომხმარებელი ეხება ეკრანს, სისტემა იწყებს ძირითადი ხედვით (UIView) და რეკურსიულად შემოწმებს, რომელ ქვედახატია ქულას ქვეშ.
პროცესი მოიცავს შემდეგ ნაბიჯებს:
- სისტემა იძახის მეთოდს
hitTest(_:with:)ძირითადი UIView-ზე და გადასცემს შეხების კოორდინატებს. - UIView-ს უტყუარად გადაამოწმებს, არის თუ არა შეხების წერტილი მის საზღვრებში (
point(inside:with:)). თუ არა, აბრუნებს nil-ს. - თუ არის, UIView გადის თავის ქვედახატებს უკუღმართად (ზევიდან ქვემოთ) და იძახის მათ
hitTest(_:with:). - თუ რომელიმე ქვედახატმა არ nil დააბრუნა, ეს ნიშნავს, რომ ის უნდა მართოს შეხება.
- თუ არცერთი ქვედახატი არ არის შესაბამისი, აბრუნებს თვით UIView-ს.
ამ გზით, აპლიკაცია ზუსტად განსაზღვრავს, რომელი ელემენტი მდებარეობს მომხმარებლის თითის ქვეშ და მზად არის, მიიღოს მოვლენა.