Είναι δυνατόν να λάβετε τις τρέχουσες παραμέτρους της θέσης της κινούμενης εικόνας κατά τη διάρκεια της αναπαραγωγής της;
sobes.tech AI
Απάντηση από AI
Στο iOS, όταν πρόκειται για animations με χρήση Core Animation (π.χ., CABasicAnimation ή CAKeyframeAnimation), δεν είναι δυνατή η άμεση λήψη των τρεχουσών παραμέτρων της animation κατά τη διάρκεια αναπαραγωγής, καθώς οι animations εκτελούνται σε επίπεδο γραφικού στρώματος και δεν ενημερώνουν άμεσα τις ιδιότητες του αντικειμένου.
Ωστόσο, μπορείτε να λάβετε την τρέχουσα κατάσταση του animation layer χρησιμοποιώντας τη μέθοδο presentation() του CALayer. Αυτή η μέθοδος επιστρέφει ένα layer με τις τρέχουσες οπτικές τιμές των ιδιοτήτων, αντικατοπτρίζοντας την κατάσταση της animation εκείνη τη στιγμή.
Παράδειγμα:
if let presentationLayer = view.layer.presentation() {
let currentPosition = presentationLayer.position
// currentPosition — η τρέχουσα θέση του layer κατά τη διάρκεια της animation
}
Έτσι, για να λάβετε τις τρέχουσες παραμέτρους της animation, πρέπει να προσεγγίσετε το presentation layer και όχι το κύριο layer ή την animation άμεσα.