개발/SWIFT 아이폰 / / 2023. 7. 24. 14:03

SwiftUI Button 누루고 있을때 색상 변경

반응형

Button에 buttonStyle을 지정하여 버튼을 누루고 있을때만 색상 변경

 

CustomButtonStyle 생성

struct CustomButtonStyle: ButtonStyle {
    var textColor: Color
    
    func makeBody(configuration: Self.Configuration) -> some View {
        configuration.label
            .padding(EdgeInsets(top: 10, leading: 20, bottom: 10, trailing: 20))
            .foregroundColor(configuration.isPressed ? textColor : Color.red)
            .background(configuration.isPressed ? Color.red : textColor)
            .overlay(RoundedRectangle(cornerRadius: 8).stroke((configuration.isPressed ? textColor : Color.red), lineWidth: 5)) // 빨간색 선
            .cornerRadius(8)
            .animation(nil) // 애니메이션 효과 제거

            // 누르고 있을때 블러 처리
            //.background(configuration.isPressed ? Color.blue.opacity(0.7) : Color.blue)
        
            // 적용시 버튼이 천천히 커졌다가 작아진다
            //.animation(.spring())
            //.scaleEffect(configuration.isPressed ? 2.0 : 1.0)
    }
}

 

버튼 색성

struct ContentView: View {
    var body: some View {
        Button("Custom Button", action: {
            // 버튼이 클릭되었을 때 수행할 동작
        })
        .buttonStyle(CustomButtonStyle(textColor: .yellow)) 
        // 이 부분에서 커스텀한 버튼 스타일을 적용합니다.
    }
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유