Saya memiliki CATransition berikut untuk UIView yang disebut finalScoreView
, yang membuatnya masuk ke layar dari atas:
CATransition *animation = [CATransition animation];
animation.duration = 0.2;
animation.type = kCATransitionPush;
animation.subtype = kCATransitionFromBottom;
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[gameOver.layer addAnimation:animation forKey:@"changeTextTransition"];
[finalScoreView.layer addAnimation:animation forKey:@"changeTextTransition"];
Bagaimana cara membuatnya agar memantul setelah turun, lalu tetap diam? Itu masih harus masuk ke layar dari atas tetapi kemudian memantul saat turun.
Bantuan apa pun akan sangat dihargai, terima kasih!
Jawaban:
Dengan iOS7 dan UIKit Dynamics, tidak perlu lagi menggunakan
CAKeyframeAnimations
atauUIView
animasi!Lihatlah aplikasi Katalog Dinamika UIKit Apple . Bergantian, Teehanlax memiliki tutorial yang jelas dan ringkas dengan proyek lengkap di github . Jika Anda menginginkan tutorial yang lebih rinci tentang seluk beluk dinamika, tutorial Ray Winderlich sangat bagus. Seperti biasa, dokumen Apple adalah perhentian pertama yang bagus, jadi lihat referensi Kelas UIDynamicAnimator di dokumen.
Berikut sedikit kode dari tutorial Teenhanlax:
Dan inilah hasilnya
UIKit Dynamics adalah tambahan yang sangat kuat dan mudah digunakan untuk iOS7 dan Anda bisa mendapatkan beberapa UI yang tampak hebat darinya.
Contoh lain:
Langkah-langkah untuk mengimplementasikan dinamika UIKit selalu sama:
UIDynamicAnimator
dan simpan di properti yang kuatUIDynamicBehaviors
. Setiap perilaku harus memiliki satu atau lebih item, biasanya tampilan untuk dianimasikan.UIDynamicBehaviors
adalah status valid dalamUIDynamicAnimator
simulasi.sumber
UIDynamicItemBehavior
(yang sebenarnya adalah properti, bukan perilaku). Anda tidak bisa hanya menggunakan sifat fisik yang berbeda dalam perilaku yang berbeda. Kasus lain adalah menerapkan batas karet seperti UIScrollView - ini sangat rumit. Saya dapat menulis lebih banyak lagi tetapi komentar terlalu pendek.UIDynamicAnimator
dan objek yang terkait dengannya tetapi tidak menjawab cara menggunakannyaAlternatif yang lebih sederhana
UIDynamicAnimator
di iOS 7 adalah Animasi Musim Semi (animasi blok UIView yang baru dan kuat), yang dapat memberi Anda efek pantulan yang bagus dengan redaman dan kecepatan: Objective CCepat
Swift 4.0.0
usingSpringWithDamping
0,0 == sangat goyang. 1.0 membuatnya melambat dengan mulus tanpa overshooting.initialSpringVelocity
adalah, secara kasar, "jarak yang diinginkan, dibagi dengan detik yang diinginkan". 1.0 sesuai dengan total jarak animasi yang dilalui dalam satu detik. Contoh, total jarak animasi adalah 200 poin dan Anda ingin awal animasi sesuai dengan kecepatan tampilan 100 pt / s, gunakan nilai 0,5.Tutorial lebih rinci dan aplikasi sampel dapat ditemukan di tutorial ini . Semoga bermanfaat bagi seseorang.
sumber
Berikut adalah proyek demo yang saya buat untuk membantu Anda mendapatkan animasi yang tepat. Nikmati!
SpringDampingDemo
sumber
sumber