Implicit Animations
1. .animation Modifier
Phần tiêu đề “1. .animation Modifier”Circle() .fill(isOn ? .green : .red) .frame(width: isOn ? 100 : 50) .animation(.default, value: isOn)2. Animation Types
Phần tiêu đề “2. Animation Types”.animation(.linear(duration: 0.5), value: state).animation(.easeIn(duration: 0.3), value: state).animation(.easeOut(duration: 0.3), value: state).animation(.easeInOut(duration: 0.3), value: state).animation(.spring(), value: state).animation(.spring(response: 0.5, dampingFraction: 0.6), value: state).animation(.bouncy, value: state)3. Ví dụ
Phần tiêu đề “3. Ví dụ”struct HeartButton: View { @State private var isLiked = false
var body: some View { Image(systemName: isLiked ? "heart.fill" : "heart") .font(.largeTitle) .foregroundColor(isLiked ? .red : .gray) .scaleEffect(isLiked ? 1.2 : 1.0) .animation(.spring(response: 0.3, dampingFraction: 0.5), value: isLiked) .onTapGesture { isLiked.toggle() } }}📝 Tips
Phần tiêu đề “📝 Tips”- Luôn specify
value:để control khi animate - Spring animation cho feel tự nhiên
- Kết hợp nhiều properties được animate cùng lúc