0Pricing
Swift Academy · Pelajaran

Animasi Implisit dan Eksplisit

Animasikan properti layer dengan CABasicAnimation.

Animasi Implisit dan Eksplisit adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Dua Cara Menganimasikan Lapisan

Core Animation menyediakan animasi implisit, yang berjalan otomatis saat properti berubah, dan animasi eksplisit, yang menggunakan objek animasi yang Anda buat sendiri.

Memahami keduanya dan cara keduanya berinteraksi merupakan kunci untuk menghasilkan gerakan yang halus.

Animasi Implisit

Mengubah properti yang dapat dianimasikan pada lapisan mandiri memicu animasi implisit menggunakan kurva bawaan selama 0,25 detik—tanpa memerlukan objek animasi.

let layer = CALayer()
// Later, this animates automatically:
layer.opacity = 0.0

Properti yang Dapat Dianimasikan

Banyak properti lapisan dapat dianimasikan: opacity, position, bounds, backgroundColor, transform, cornerRadius, dan lainnya.

layer.cornerRadius = 20 // animates implicitly
layer.backgroundColor = UIColor.systemGreen.cgColor

Aksi dan Mekanisme Aksi

Animasi implisit digerakkan oleh aksi. Saat suatu properti berubah, lapisan mencari CAAction untuk dijalankan. Anda dapat menyesuaikan atau menonaktifkan aksi ini.

Lapisan yang Didukung Tampilan Menonaktifkan Animasi Implisit

Lapisan yang terpasang pada UIView menonaktifkan animasi implisit. Anda dapat menganimasikannya melalui UIView.animate atau menggunakan animasi eksplisit.

UIView.animate(withDuration: 0.3) {
    view.alpha = 0
}

CABasicAnimation

CABasicAnimation menganimasikan satu properti di antara fromValue dan toValue. Tambahkan animasi tersebut ke lapisan dengan jalur kunci yang sesuai dengan propertinya.

let anim = CABasicAnimation(keyPath: "opacity")
anim.fromValue = 1.0
anim.toValue = 0.0
anim.duration = 0.5
layer.add(anim, forKey: "fade")

Presentasi vs Model

Animasi eksplisit hanya mengubah nilai presentasi yang terlihat di layar; nilai model milik lapisan kembali seperti semula saat animasi berakhir.

Agar perubahan tetap tersimpan, tetapkan juga nilai modelnya.

layer.opacity = 0.0 // set model value so it persists
layer.add(anim, forKey: "fade")

Animasi Bingkai Kunci

CAKeyframeAnimation menganimasikan beberapa values melalui keyTimes, atau mengikuti path—cocok untuk pantulan atau gerakan mengikuti kurva.

let move = CAKeyframeAnimation(keyPath: "position")
move.values = [
    NSValue(cgPoint: CGPoint(x: 0, y: 0)),
    NSValue(cgPoint: CGPoint(x: 100, y: 0)),
    NSValue(cgPoint: CGPoint(x: 100, y: 100))
]
move.duration = 1.0
layer.add(move, forKey: "path")

Fungsi Pengaturan Waktu

Atur percepatan dengan timingFunction: percepatan masuk, perlambatan keluar, linier, atau kurva Bezier kubik khusus.

anim.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut)

Pengelompokan dan Transaksi

Bungkus beberapa perubahan dalam CATransaction untuk menggunakan durasi dan pengaturan waktu yang sama, atau untuk menonaktifkan animasi implisit sepenuhnya.

CATransaction.begin()
CATransaction.setDisableActions(true)
layer.position = CGPoint(x: 200, y: 200)
CATransaction.commit()

Delegasi Animasi dan Penyelesaian

Tetapkan CATransaction.setCompletionBlock atau delegasi animasi untuk menjalankan kode saat gerakan selesai—misalnya untuk pembersihan, penyambungan animasi berikutnya, atau pembaruan status.

CATransaction.begin()
CATransaction.setCompletionBlock { print("done") }
layer.add(anim, forKey: "fade")
CATransaction.commit()

Pemeriksaan Singkat: Animasi

Uji pemahaman Anda tentang animasi implisit dan eksplisit.

Ringkasan: Animasi Implisit dan Eksplisit

Lapisan mandiri menganimasikan dirinya secara implisit melalui aksi saat properti yang dapat dianimasikan berubah; lapisan yang didukung tampilan menonaktifkan perilaku ini dan menggunakan UIView.animate. CABasicAnimation dan CAKeyframeAnimation eksplisit menganimasikan nilai presentasi, jadi perbarui nilai model agar hasilnya tetap tersimpan.

Sesuaikan gerakan dengan fungsi pengaturan waktu, kelompokkan perubahan dalam CATransaction, dan gunakan blok penyelesaian untuk pekerjaan lanjutan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Animasi Implisit dan Eksplisit” gratis?

Ya — teks lengkap “Animasi Implisit dan Eksplisit” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Animasi Implisit dan Eksplisit”?

Animasikan properti layer dengan CABasicAnimation. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Animasi Implisit dan Eksplisit” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Dasar-Dasar CALayer
  2. Animasi Implisit dan Eksplisit
  3. Transformasi dan Efek 3D
  4. Menggambar Kustom dengan Core Graphics
← Kembali ke Swift Academy