Skip to main content
LanguageΕλληνικά
Μηχανική5 λεπτά ανάγνωσηΟκτώβριος 2026

Πώς λειτουργούν τα κινούμενα σχέδια της άνοιξης στο SwiftUI;

Σύντομη απάντηση

Στο SwiftUI προσθέτετε ένα ελατήριο με .animation(.spring) ή withAnimation(.spring). Από το iOS 17 οι κύριες ρυθμίσεις είναι η διάρκεια και η αναπήδηση και υπάρχουν προεπιλογές: .smooth (χωρίς αναπήδηση), .snappy (λίγο) και .bouncy (περισσότερο). Ο παλαιότερος κώδικας χρησιμοποιεί απόκριση και κλάσμα απόσβεσης. Τα ελατήρια SwiftUI διατηρούν την ταχύτητά τους όταν ένα νέο κινούμενο σχέδιο τα διακόπτει, γεγονός που κάνει τις χειρονομίες να αισθάνονται φυσικές.

Core Takeaway

  • Χρησιμοποιήστε το withAnimation(.spring) για αλλαγές κατάστασης ή το .animation(.spring, value:) σε μια προβολή
  • iOS 17+: .spring(διάρκεια:bounce:) συν προεπιλογές .smooth, .snappy και .bouncy
  • Παλαιότερο API: .spring(response:dampingFraction:blendDuration:)
  • Τα ελατήρια είναι το προεπιλεγμένο στυλ κίνησης του SwiftUI από το iOS 17
  • Τα διακοπτόμενα ελατήρια διατηρούν την ταχύτητά τους, επομένως οι χειρονομίες απομακρύνονται ομαλά

Το SwiftUI ζωντανεύει αλλαγές στην κατάσταση. Όταν μια τιμή όπως το isExpanded αλλάζει μέσα στο withAnimation(.spring), κάθε προβολή που εξαρτάται από αυτήν μετακινείται στη νέα της διάταξη χρησιμοποιώντας ένα ελατήριο.

Στο iOS 17 και νεότερες εκδόσεις, ο απλούστερος τρόπος για να περιγράψετε ένα ελατήριο είναι με δύο τιμές: διάρκεια, περίπου πόσος χρόνος χρειάζεται για να εγκατασταθεί και αναπήδηση, πόσο υπερβαίνει. Μια αναπήδηση 0 δίνει ομαλή κίνηση χωρίς υπέρβαση. υψηλότερες τιμές προσθέτουν αναπήδηση. Η Apple παρέχει επίσης προεπιλογές: .smooth, .snappy και .bouncy.

Ο παλαιότερος κώδικας χρησιμοποιεί .spring(response:dampingFraction:). Η απόκριση είναι παρόμοια με τη διάρκεια και ένα κλάσμα απόσβεσης 1 σημαίνει μη αναπήδηση ενώ χαμηλότερες τιμές προσθέτουν αναπήδηση. Και οι δύο μορφές περιγράφουν το ίδιο φυσικό ελατήριο.

Το μεγάλο πλεονέκτημα των ελατηρίων είναι η διακοπή. Εάν ένας χρήστης πατήσει ξανά ή μια χειρονομία μεταφοράς τελειώσει στο μέσο της κίνησης, το νέο ελατήριο ξεκινά από την τρέχουσα θέση και ταχύτητα, οπότε δεν υπάρχει άλμα. Για χειρονομίες μεταφοράς, περάστε την ταχύτητα της κίνησης όταν ο χρήστης απελευθερώσει, έτσι ώστε το στοιχείο να συνεχίσει προς την κατεύθυνση που εκτοξεύτηκε.

Εάν το ίδιο στοιχείο πρέπει επίσης να εκτελείται στον ιστό ή στο Android, η διατήρηση των τιμών ελατηρίου ως κοινόχρηστα διακριτικά κίνησης βοηθά. Το ExodeUI, το οποίο κατασκευάζουμε, έχει χρόνο εκτέλεσης SwiftUI, επομένως ένα σχεδιασμένο εξάρτημα με τα ελατήρια του μπορεί να παίξει στο SwiftUI και σε άλλες πλατφόρμες.

Συχνές ερωτήσεις

Ποιο είναι το προεπιλεγμένο animation στο SwiftUI;

Από το iOS 17, το προεπιλεγμένο animation είναι ένα ομαλό ελατήριο.

Ποια είναι η διαφορά μεταξύ .snappy και .bouncy;

Το .snappy καθιζάνει γρήγορα με μια μικρή υπέρβαση. .το bouncy ξεπερνά περισσότερο. .smooth δεν έχει υπέρβαση.

Πώς μπορώ να μετατρέψω την απόκριση και το κλάσμα απόσβεσης σε διάρκεια και αναπήδηση;

Απόκριση αντιστοιχίζεται κατά προσέγγιση στη διάρκεια. Ένα κλάσμα απόσβεσης 1 είναι αναπήδηση 0. χαμηλότερα κλάσματα απόσβεσης σημαίνουν μεγαλύτερη αναπήδηση.

Πώς μπορώ να προσθέσω ταχύτητα από μια κίνηση σύρματος;

Διαβάστε την ταχύτητα όταν τελειώνει η έλξη και χρησιμοποιήστε ένα ελατήριο παρεμβολής ή τα νεότερα API ελατηρίου που δέχονται μια αρχική ταχύτητα.

Σχετικοί Οδηγοί & Παραδείγματα

Συντονίστε ένα ελατήριο πριν γράψετε κώδικα

Σύρετε τα ρυθμιστικά, παρακολουθήστε την κίνηση και αντιγράψτε τιμές ελατηρίου για SwiftUI, CSS και άλλες πλατφόρμες.

Ανοίξτε τη γεννήτρια ελατηρίου
ExodeUI

EXODEUI DESKTOP

A little space for good ideas.

Choose your platform to get the official ExodeUI installer.

Looking for Intel Mac or other builds? Explore the web studio or check all download options.

Prefer the browser? Try for free in your browser →