Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 리펙터링
- rxswift
- ios
- map
- Human interface guide
- swiftUI
- 클린 코드
- HIG
- RxCocoa
- swift documentation
- Protocol
- uitableview
- Observable
- UITextView
- combine
- 리펙토링
- ribs
- 스위프트
- clean architecture
- Clean Code
- SWIFT
- UICollectionView
- Xcode
- collectionview
- uiscrollview
- 애니메이션
- MVVM
- tableView
- Refactoring
- 리팩토링
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - swift] UIButton.Configuration 개념 (#subtitle, #showsActivityIndicator) 본문
iOS 응용 (swift)
[iOS - swift] UIButton.Configuration 개념 (#subtitle, #showsActivityIndicator)
jake-kim 2023. 9. 21. 02:11UIButton.Configuration 개념
- iOS 15+
- 버튼들을 유형별로 일관성 있는 방식으로 손쉽게 사용할 수 있게하기 위함
UIButton.Configuration 사용 방법
- UIButton.Configuration 객체를 만들고, 이 객체로 UIButton을 초기화 하는 방식
var config = UIButton.Configuration.plain()
config.title = "\(i) button " + "(" + names[i] + ")"
config.subtitle = "subtitle"
let button = UIButton(configuration: config)
- 컴포넌트화 할 때, Configuration과 UI 자체를 코드로 분리하여 사용하는쪽에서 일관성있고 사용하기 편리하게 하기위해서 애플에서 iOS 15부터 Configuration을 UIButton하위에 정의한 것
UIButton.Configuration 종류
- configuration의 종류는 버튼의 목적에 따라 분류한 것이 아닌, 오로지 버튼의 생김새에 따라 분류
var configs = [
UIButton.Configuration.plain(),
.tinted(),
.gray(),
.filled(),
.borderless(),
.bordered(),
.borderedTinted(),
.borderedProminent()
]
Configuration 분류 (1) 배경 색상에 따라 분류
var configs = [
UIButton.Configuration.plain(),
.tinted(),
.gray(),
.filled()
]
- plain: 투명 배경색의 버튼
- tinted: 틴트된 배경색의 버튼
- gray: 회색 배경색의 버튼
- filled: 버튼의 tint 컬러로 배경색상을 채운 스타일
Configuration 분류 (2) border 스타일에 따라 분류
var configs = [
UIButton.Configuration..borderless(),
.bordered(),
.borderedTinted(),
.borderedProminent()
]
- border
- borderless
- borderedTinted
- bordereProminen
UIButton.Configuration에서 제공하는 새로운 기능
- title, subtitle, image를 제공
var config = UIButton.Configuration.plain()
config.title = "title"
config.subtitle = "subtitle"
config.image = UIImage(systemName: "house")
let button = UIButton(configuration: config)
- title, subtitle, image간의 간격 설정
- titlePadding: 타이틀과 서브타이틀 간격
- imagePadding: 타이틀과 이미지와의 간격
config.imagePadding = 8
config.titlePadding = 12
- activityIndicator 제공
- 단, indicator가 노출되어도 버튼 탭이 가능하므로 disable은 따로 설정 필요
config.showsActivityIndicator = true
* 전체 코드: https://github.com/JK0369/ExButtonConfiguration
* 참고
https://developer.apple.com/documentation/uikit/uibutton/configuration
'iOS 응용 (swift)' 카테고리의 다른 글
Comments