Dev-iOS/SwiftUI

[SwiftUI] Animation 모음 - (하트 모양 좋아요 버튼)

lafortune 2024. 9. 10. 07:30
반응형

struct HeartButton: View {
    @State var isLiked = false
    @State var scale: CGFloat = 1
    
    var body: some View {
        Image(systemName: isLiked ? "heart.fill" : "heart")
            .resizable()
            .frame(width: 100, height: 100)
            .foregroundColor(isLiked ? .red : .gray)
            .scaleEffect(scale)
            .animation(.easeInOut(duration: 0.2))
            .onTapGesture {
                isLiked.toggle()
                scale = isLiked ? 1.2 : 1
                DispatchQueue.main.asyncAfter(deadline: .now() + 0.2) {
                    scale = 1
                }
            }
    }
}
반응형