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 | 31 |
Tags
- spring
- Coding Test
- fcm
- github
- ios
- Project
- Firebase
- tabman
- UIDatePicker
- UIStackView
- Flutter
- app intents
- createml
- task.yield()
- Swift
- Tuist
- Apple Developer Academy
- cloud functions
- widgetkit
- Sendbird
- watchkit
- 코테
- Complication
- Delegate Pattern
- UITableView
- backend
- coreml
- WWDC22
- SwiftUI
- swift concurrency
Archives
- Today
- Total
azhy의 iOS 이야기
[iOS/Swift] UIDatePicker 최소, 최대 날짜 설정하기 본문
2022년 7월 24일에 작성됨
UIDatePicker로 날짜를 선택하는 경우, 특정한 날짜를 선택하면 안 되는 경우가 있습니다.
예를 들어 오늘 기준 미래의 날짜를 선택하면 안되거나 과거 특정한 날 이상을 벗어나면 안 되는 경우 등 다양한 경우의 수가 존재하죠. 이럴 때 UIDatePicker에 선택할 수 있는 날짜의 범위를 지정해 줄 수 있습니다.
private let datePicker: UIDatePicker = {
let datePicker = UIDatePicker()
datePicker.preferredDatePickerStyle = .wheels
datePicker.datePickerMode = .date
datePicker.locale = Locale(identifier: "ko-KR")
datePicker.frame.size = CGSize(width: 0, height: 250)
let calendar = Calendar(identifier: .gregorian)
let currentDate = Date()
var components = DateComponents()
components.calendar = calendar
// datePicker max 날짜 세팅 -> 오늘 날짜 에서
//
components.year = -1
components.month = 12
let maxDate = calendar.date(byAdding: components, to: currentDate)!
// datePicker min 날짜 세팅 -> 30년 전 까지
//
components.year = -31
let minDate = calendar.date(byAdding: components, to: currentDate)!
datePicker.minimumDate = minDate
datePicker.maximumDate = maxDate
return datePicker
}()
방법은 상당히 간단합니다. 중요한 부분은 min 날짜와 max 날짜인데 min year, month와 max year, month의 날짜를 설정해서 datePicker에 세팅해 주면 됩니다.
저의 경우에 과거 30년 전부터 오늘 까지 범위를 설정을 했습니다. 본인의 datePicker에서 min 날짜와 max 날짜만 세팅을 해주면 될 것 같습니다.
이렇게 하면 설정한 범위를 벗어나는 date는 선택을 할 수 없게 됩니다.
'Swift' 카테고리의 다른 글
[iOS/Swift] lazy Variable (4) | 2024.11.13 |
---|---|
[iOS/Swift] setContentHuggingPriority, setContentCompressionResistancePriority 개념 (0) | 2024.11.13 |
[iOS/Swift] Lottie 를 사용해서 애니메이션을 만드는 법 (2) | 2024.11.12 |
[iOS/Swift] dismiss 하고 present 넘어가기 (Presented vs Presenting ViewController) (0) | 2024.11.12 |
[iOS/Swift] UITableView scrollToRow, 특정 셀로 스크롤 이동 (0) | 2024.11.12 |