Efek target: Setelah mengklik tombol animasi, setiap kartu berputar dan menyebar ke posisi apa pun di bagian atas layar dan kembali ke posisi awal. Lebih seperti animasi keterampilan pisau pria lol :)
1: Buat objek kartu
untuk _ di 0 ... 49 {let cardset = uiMageView (gambar: uiimage (bernama: "cardbacklandscape")) self.view.addsubview (cardset) cardset.frame = self.landscapeCardback.frame self.cardsetlist.Append (cardset)} nsnotification.defaCer.defaaticing.deFaulder.) nil)Buat setiap kartu sebagai uiMageView. Untuk mengoperasikan kartu -kartu ini nanti, saya menggunakan array untuk menahannya di posisi yang sama. Setelah membuatnya, saya mengirim pesan setCreated menggunakan pemberitahuan lokal untuk memberi tahu pengamat halaman ini bahwa set kartu telah dibuat dan dapat mulai mengeksekusi animasi kedua.
2: Pertama, Anda harus mematikan interaksi pengguna dari tombol yang memulai animasi. Jika aktif, mengklik terus menerus akan membuat 50 kartu setiap kali, mengakibatkan program macet atau bahkan menggantung
Delaytime di sini adalah menambahkan waktu tunda ke utas hanya untuk membuat animasi kurang kaku
Setiap kali saya berputar untuk menambahkan animasi rotasi ke objek kartu subskrip yang sesuai dan mengubah asalnya. Sebelum saya menerapkan animasi ini dengan animasi UIVIEW, saya berpikir untuk menambahkan kurva bezier ke setiap kartu. Itu akan lebih terkendali. Namun, karena waktu, saya hanya menggunakan Uiviewanimation. Animasi rotasi yang ditambahkan ke kartu diimplementasikan menggunakan Pop Animation Library, yang menggunakan animasi dasar di sini. Setelah langkah ini, setiap kartu akan diputar dan disebarkan ke posisi yang berbeda. Ketika Delaytime berakhir dan memicu pemberitahuan lokal untuk mengirim Shufflefinished, pengamat halaman ini akan menjalankan animasi berikutnya, yaitu, kembalikan setiap kartu ke titik awal animasi.
funche shuffletheset () {self.shufflebutton.userinteractionabled = false let delaytime = dispatch_time (dispatch_time_now, int64 (0,5 * ganda (nsec_per_sec))) dispatch_after (delaytime, dispatch_get_main_queue ()))) {) NSNotificationCenter.defaultCenter().postNotificationName("shuffleFinished", object: nil) } for count in 0...49 { UIView.animateWithDuration(0.3, animations: { let cardRotateAnimation = POPBasicAnimation(propertyNamed: kPOPLayerRotation) cardRotateAnimation.fromValue = 0 cardrotateAnimation.tovalUe = cgfloat (m_pi * 2.0) cardrotateAnimation.duration = 1 // cardrotateAnimation.duration = double (count> 5? count/2: count/10) cardrotateAnimation.timingFunction = camediatimingFuncti self.cardSetList[count].layer.pop_addAnimation(cardRotateAnimation, forKey: "cardRotation") self.cardSetList[count].frame.origin = CGPointMake(CGFloat(arc4random()) % (250 - 0 + 1) + 0, CGFloat(arc4random()) % (300 - 74 + 1) + 74) mandiri3: Kembalikan setiap kartu ke posisi awal dan atur judul tombol ke status pemotongan kartu.
untuk hitungan dalam 0 ... 49 {uiview.animateWithDuration (0.3, animasi: {self.cardsetlist [count] .center = self.landscapecardback.center}) self.view.layoutifneeded ()} self.shuffluFlUbutton.userInterIctionenabled = true.shuffufufufufufufufuflufufufufufluxton.shuPluFlUxton.shuxton (Kebutuhan kartu untuk dipotong setelah kartu adalah memotong kartu. Karena alasan waktu, efek animasi selanjutnya akan terus diperbarui minggu depan ...
Di atas adalah metode penerapan efek animasi perombakan Swift yang diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!