0Pricing
Swift Academy · Pelajaran

Animasi Implisit vs Eksplisit

Menggunakan modifier .animation() dibandingkan blok withAnimation {} untuk berbagai kebutuhan.

Animasi Implisit vs Eksplisit adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Gaya Animasi

SwiftUI mendukung animasi implisit, yaitu modifier .animation, dan animasi eksplisit, yaitu closure withAnimation.

struct Demo: View {
  @State private var scale = 1.0
  var body: some View {
    Circle().scaleEffect(scale)
  }
}

Animasi Implisit dengan .animation

Menambahkan .animation(_:value:) ke tampilan akan menganimasikannya setiap kali nilai terikat berubah.

Circle()
  .scaleEffect(scale)
  .animation(.easeInOut(duration: 0.3), value: scale)

Memicu Animasi Implisit

Setiap perubahan status yang memengaruhi tampilan secara otomatis memicu animasi implisit yang ditentukan pada tampilan tersebut.

Button("Grow") {
  scale = 2.0  // .animation fires automatically
}

Animasi Eksplisit dengan withAnimation

withAnimation membungkus mutasi status dan menganimasikan semua perubahan tampilan yang dihasilkan secara bersamaan.

Button("Animate") {
  withAnimation(.spring()) {
    scale = 2.0
    offset = 50
  }
}

Menganimasikan Beberapa Properti

withAnimation lebih tepat digunakan ketika Anda ingin menganimasikan beberapa perubahan status secara selaras sebagai satu transaksi.

withAnimation(.easeOut(duration: 0.5)) {
  isExpanded = true
  rotation = 90
  opacity = 0.5
}

Jenis Animasi

Swift menyediakan animasi spring, easeIn, easeOut, easeInOut, linear, dan kurva waktu khusus.

.spring(response: 0.4, dampingFraction: 0.6)
.easeInOut(duration: 0.3)
.linear(duration: 0.5)
.timingCurve(0.2, 0.8, 0.2, 1.0, duration: 0.4)

Menonaktifkan Animasi

Berikan .animation(.none, value:) atau bungkus mutasi dalam withAnimation(nil) untuk menonaktifkan animasi secara selektif.

Circle()
  .scaleEffect(scale)
  .animation(.none, value: scale)  // no animation

Prioritas Animasi

withAnimation eksplisit memiliki prioritas lebih tinggi daripada modifier .animation implisit pada tampilan anak.

withAnimation(.linear) {
  value = true  // linear wins over any .animation on subviews
}

Animasi Berulang

Gunakan .repeatForever atau .repeatCount untuk animasi berulang seperti efek berdenyut.

.animation(
  .easeInOut(duration: 0.8).repeatForever(autoreverses: true),
  value: pulsing
)

Penundaan dan Kecepatan

Gabungkan animasi dengan modifier .delay dan .speed pada nilai animasi.

.animation(.spring().delay(0.2).speed(1.5), value: flag)

Memilih Animasi Implisit atau Eksplisit

Gunakan animasi implisit untuk animasi satu tampilan yang terikat pada satu nilai; gunakan animasi eksplisit saat mengoordinasikan beberapa properti atau tampilan.

// Implicit: simple, single view
.animation(.easeIn, value: isVisible)
// Explicit: multi-property or cross-view
withAnimation { a = 1; b = 2 }

Pemeriksaan Singkat

Pendekatan mana yang paling baik untuk mengoordinasikan animasi beberapa properti status secara bersamaan?

Ringkasan Pelajaran

Animasi implisit (.animation(_:value:)) secara otomatis merespons perubahan nilai pada satu tampilan. Animasi eksplisit (withAnimation {}) mengoordinasikan beberapa mutasi. Gabungkan dengan .delay, .speed, dan .repeatForever untuk menghasilkan efek yang kompleks.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Animasi Implisit vs Eksplisit” gratis?

Ya — teks lengkap “Animasi Implisit vs 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 vs Eksplisit”?

Menggunakan modifier .animation() dibandingkan blok withAnimation {} untuk berbagai kebutuhan. 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 1 dari 4.

Berapa lama pelajaran “Animasi Implisit vs 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. Animasi Implisit vs Eksplisit
  2. matchedGeometryEffect untuk Transisi Hero
  3. AnimatableModifier dan Animatable Kustom
  4. TimelineView dan Canvas untuk Gambar Berkinerja Tinggi
← Kembali ke Swift Academy