일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- button
- Xcode
- kotlin
- PyQt
- Python
- graph
- cocoapods
- Chrats
- 개발자
- alamofire
- Swift
- 그래프
- UIKit
- Apple
- charts
- Android
- Chart
- UITableView
- 어플리케이션
- androidstudio
- ios
- 라이브러리
- TableView
- library
- 개발
- modal
- UIButton
- ui
- PyQt5
- Storyboard
Archives
- Today
- Total
Jiwift
[SwiftUI] Button - 커스텀 이미지 버튼 만들기, Custom Image Button 본문
반응형
버튼을 눌렀을 때와 아닐 때를 이미지로 적용하는 Custom 버튼을 적용하는 코드
Custom Code
struct CustomImageButtonStyle: ButtonStyle {
let normalImage: Image = Image(.circlePlusN)
let pressedImage: Image = Image(.circlePlusS)
let size: CGFloat = 50
func makeBody(configuration: Configuration) -> some View {
(configuration.isPressed ? self.pressedImage : self.normalImage)
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: self.size, height: self.size)
.clipped()
.animation(nil, value: configuration.isPressed) // 애니메이션 제거
}
}
ButtonStyle 코드입니다. 원하는 이미지를 normal과 pressed 두 개로 준비합니다. 색상이어도 괜찮습니다. size는 필요 없는 경우 사용하지 않으셔도 됩니다.
makebody에서는 옵션을 적용합니다. resizable, aspectratio, frame 옵션들로 size가 변경되어도 이미지가 버튼 크기에 맞게 설정됩니다. clipped는 그냥 넣어두었습니다. anmation을 nil로 설정하면서 변경되는 순간에 약간의 효과를 제거했습니다.
Button 적용 Code
Button(action: {
print("Click!! \(self.count)")
self.count += 1
}, label: {}).buttonStyle(CustomImageButtonStyle())
안녕하세요! 저는 단순한 코딩을 넘어, 서비스와 사용자 경험을 깊이 고민하며 발전하는 개발자가 되기 위해 끊임없이 노력하고 있습니다. 함께 재미있는 이야기 나누고 싶으시거나, 채용 소개 및 커피챗에 관심 있으신 분들은 언제든지 환영합니다.
궁금한 점이 있거나 더 많은 이야기를 나눠보고 싶다면, wlxo0401@gmail.com으로 편하게 연락 주세요! 감사합니다.
반응형
'iOS Dev > SwiftUI' 카테고리의 다른 글
[SwiftUI] TextField - Custom 회색 배경, Gray Background (0) | 2024.10.30 |
---|---|
[SwiftUI] TextField - Custom 밑줄 있는 디자인, Under Line (0) | 2024.10.30 |
[SwiftUI] List - Separator 숨기기 (0) | 2024.10.02 |
[SwiftUI] List - View 사이 간격 추가하기, Create spacing between View in a SwiftUI List (0) | 2024.10.02 |
[SwiftUI] Button - 커스텀 버튼 만들기 ButtonStyle, Custom Button (1) | 2024.09.16 |