Junior — Middle
შესაძლებელია თუ არა მიიღოთ ანიმაციის მიმდინარე პოზიციის პარამეტრები მისი შესრულების დროს?
sobes.tech AI
პასუხი AI-სგან
iOS-ში, როდესაც საუბარია Core Animation-ის გამოყენებით შექმნილ ანიმაციებზე (მაგალითად, CABasicAnimation ან CAKeyframeAnimation), შეუძლებელია პირდაპირ მიიღოთ მიმდინარე ანიმაციის პარამეტრები შესრულების დროს, რადგან ანიმაციები ხატვის ფენის დონეზე ხორციელდება და პირდაპირ არ განაახლებს ობიექტის თვისებებს.
თუმცა, შეგიძლიათ მიიღოთ ანიმირებული ფენის მიმდინარე მდგომარეობა CALayer-ის presentation() მეთოდის გამოყენებით. ეს მეთოდი აბრუნებს ფენას, რომელიც ასახავს თვისებების მიმდინარე ვიზუალურ მნიშვნელობებს, ასახავს ანიმაციის მდგომარეობას ამ მომენტში.
მაგალითი:
if let presentationLayer = view.layer.presentation() {
let currentPosition = presentationLayer.position
// currentPosition — ფენის მიმდინარე პოზიცია ანიმაციის დროს
}
ამიტომ, მიმდინარე ანიმაციის პარამეტრების მისაღებად, საჭიროა მიმართოთ presentation ფენას, არა მთავარ ფენას ან პირდაპირ ანიმაციას.