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
- ios
- RawValue
- 30개프로젝트로배우는iOS앱개발withSwift초격자패키지Online
- 패스트캠퍼스
- 함수
- SeSAC
- Realm
- 옵셔널 체이닝
- switch
- Background
- 프로퍼티 관찰자
- TableView
- 문자열 보간법
- cancelAsyncWrite
- Git
- userDefaults
- 열거형
- 독학
- 인스펙터
- enum
- xcode
- beginAsyncWrite
- swift
- 직장인자기계발
- 패스트캠퍼스후기
- Optional Chaining
- 기본문법
- 패캠챌린지
- 직장인인강
- Threading
Archives
- Today
- Total
아삭아삭 iOS 개발
[TIL] 2022.07.14 (SeSAC iOS) 본문
오늘 공부한 내용들을 내가 잊지 않기 위해 기록합니다.
틀린 내용이 있을 수 있는 점 참고 부탁드립니다 :)
■ 오늘의 과제
1) 1~9회차 복습
- 이전까지 진행한 내용들 중 내용정리하지 못한 부분들 재정리
- 누락한 mission과제들 정리하여 업로드 순차적 업로드 예정
2) 기념일 계산기 기능 구현하기
- iOS의 버전에 따른 DatePicker의 preferredDatePickerStyle 방식 설정해보기
① iOS 14 이상인 경우 - inline 방식
② iOS 14 미만인 경우 - wheel 방식 - DatePicker의 ValueChanged시 선택된 일자 기준으로 100, 200일 뒤의 날짜를 레이블에 표기하기
- Data → String 변환해주는 함수 dateToFormattedString를 결과레이블 수만큼 반복해주었다.
(매개변수로는 datePicker로 선택된 일자, 그리고 거기에 더해줄 일수 plusDay로 설정)
- plusDay 수(100~400)를 따로 저장해둔 곳이 없어서 (setUI() 부분에서도 반복문으로 돌려서 기입함)
결과 레이블의 tag을 활용해 숫자를 만들어 사용했다.
@IBAction func datePickerValueChanged(_ sender: UIDatePicker) {
// 계산된 일자 4개를 결과레이블에 담기
for resultDate in anniversaryDateLabels {
let plus = (resultDate.tag + 1) * 100
resultDate.text = dateToFormattedString(pickedDate: sender, plusDay: plus)
}
}
- DataFormatter를 통해 String ↔ Data 변환 학습해보기
- 이번 과제에서는 DatePicker에서 선택된 일자인 Data를 String로 변환해주는 연습을 해보았다.
// datepicker로 선택한 날짜에 특정일만큼 더한 결과를 나타냄
// Date -> String
func dateToFormattedString(pickedDate: UIDatePicker, plusDay: Int) -> String {
// DateFormatter로 일자속성 설정
let format = DateFormatter()
format.dateFormat = #"yyyy년\#nMM월 dd일"#
format.locale = Locale(identifier: Locale.current.identifier)
format.timeZone = TimeZone(identifier: TimeZone.current.identifier)
// 선택된 일자에 특정 일수만큼 더해줌
let date = pickedDate.date
let calculatedDate = date.addingTimeInterval(TimeInterval(3600*24*plusDay))
// 더해진 결과일자를 string으로 변환한 값을 돌려줌
return format.string(from: calculatedDate)
}
마무리
혼자하는 것보다 스터디를 하면서 공부하니 훨씬 큰 도움이 된다.
동일한 기능을 구현해도 모인 사람수 만큼의 방법이 나와서 배울점이 진짜 많은 것 같다!
오늘 수업시간에는 여러 유용한 라이브러리들도 간단하게 사용해보았는데,
나도 나중에 자주쓰거나 look and feel개선을 효율적으로 할 수 있는 라이브러리를 배포해보고 싶다.
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL] 2022.07.16~17 (SeSAC iOS) (0) | 2022.07.17 |
---|---|
[TIL] 2022.07.15 (SeSAC iOS) (0) | 2022.07.15 |
[TIL] 2022.07.13 (SeSAC iOS) (0) | 2022.07.13 |
[TIL] 2022.07.12 (SeSAC iOS) (0) | 2022.07.12 |
[TIL] 2022.07.11 (SeSAC iOS) (0) | 2022.07.11 |