아삭아삭 iOS 개발

[TIL] 2022.07.14 (SeSAC iOS) 본문

TIL(Today I Learned)

[TIL] 2022.07.14 (SeSAC iOS)

바닐라머스크 2022. 7. 14. 23:55

 

오늘 공부한 내용들을 내가 잊지 않기 위해 기록합니다.

틀린 내용이 있을 수 있는 점 참고 부탁드립니다 :)

 

■ 오늘의 과제

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