Sobes.tech
Junior — Middle

როგორ განსაზღვრავს აპლიკაცია, რომელი ინტერფეისის ნაწილი უნდა რეაგირებდეს სენსორულ შეხებაზე?

sobes.tech AI

პასუხი AI-სგან

iOS-ში, ინტერფეისის რომელ ნაწილს უნდა უპასუხოს სენსორულ შეხებას, hit-testing მექანიზმს იყენებს. როდესაც მომხმარებელი ეხება ეკრანს, სისტემა იწყებს ძირითადი ხედვით (UIView) და რეკურსიულად შემოწმებს, რომელ ქვედახატია ქულას ქვეშ.

პროცესი მოიცავს შემდეგ ნაბიჯებს:

  1. სისტემა იძახის მეთოდს hitTest(_:with:) ძირითადი UIView-ზე და გადასცემს შეხების კოორდინატებს.
  2. UIView-ს უტყუარად გადაამოწმებს, არის თუ არა შეხების წერტილი მის საზღვრებში (point(inside:with:)). თუ არა, აბრუნებს nil-ს.
  3. თუ არის, UIView გადის თავის ქვედახატებს უკუღმართად (ზევიდან ქვემოთ) და იძახის მათ hitTest(_:with:).
  4. თუ რომელიმე ქვედახატმა არ nil დააბრუნა, ეს ნიშნავს, რომ ის უნდა მართოს შეხება.
  5. თუ არცერთი ქვედახატი არ არის შესაბამისი, აბრუნებს თვით UIView-ს.

ამ გზით, აპლიკაცია ზუსტად განსაზღვრავს, რომელი ელემენტი მდებარეობს მომხმარებლის თითის ქვეშ და მზად არის, მიიღოს მოვლენა.