학습 내용

today by 1pm

  • iPad 가로모드 전용 앱입니다

  • 각 셀에는 [제목 / 설명 / 기한]이 표시됩니다

    • 제목은 한 줄이며, 길면 잘라서 마지막 부분을 ...로 표시합니다

    • 설명이 세 줄 이상이면 세 줄 까지만 표시합니다

    • 설명이 세 줄 이하라면, 설명글의 높이에 맞게 셀의 높이가 맞춰집니다

      today by 8pm

    • TODO와 DOING의 기한에 지난 날짜가 있으면 빨간색으로 표시합니다

    • 오른쪽 위의 + 버튼을 선택하면 새로운 할일을 추가하는 작성양식이 표시됩니다

  • Word wrapping 방식의 이해

  • 동적 테이블뷰 셀 높이 구현

1. 첫 번째 학습 내용: 동적 테이블뷰 셀 높이 구현

todoTableView.rowHeight = UITableView.automaticDimension
todoTableView.estimatedRowHeight = 100

오잉? raywenderlich에서 이렇게 코드 넣어주랬는데

저거 안 넣어줘도 동적으로 테이블뷰 셀 높이 바뀜

Swift dynamic table cell height

Apple Developer Documentation

Self-sizing Table View Cells

2. 두 번째 학습 내용: Adding Headers and Footers to Table Sections

Adding Headers and Footers to Table Sections

Apple Developer Documentation

3. 세 번째 학습 내용: NSDate

Class
NSDate

A representation of a specific point in time, for use when you need reference semantics or other Foundation-specific behavior.

class NSDate : NSObject

Overview

NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date (00:00:00 UTC on 1 January 2001).

The NSDate class provides methods for comparing dates, calculating the time interval between two dates, and creating a new date from a time interval relative to another date. NSDate objects can be used in conjunction with [DateFormatter](https://developer.apple.com/documentation/foundation/dateformatter) objects to create localized representations of dates and times, as well as with [NSCalendar](https://developer.apple.com/documentation/foundation/nscalendar) objects to perform calendar arithmetic.

Swift 3 - Comparing Date objects

4. 네 번째 학습 내용: Date Picker

오른쪽 위의 + 버튼을 선택하면 새로운 할일을 추가하는 작성양식이 표시됩니다

  • 작성한 할일은 [할일(TODO)] 영역에 추가합니다

스토리 보드에선 이쁘장하게 휠 모양으로 돼있고선

막상 시뮬레이터 돌리면

왜 캘린더 모양일까? =_=

해결 방법: 스토리보드 - Date Picker - Preferred Style - Wheels

(default 값으로 automatic이라서 내가 원하는 휠모양이 아니었던거다!)

Mode도 Date로 변경해줌

(default 값으로 Date and Time으로 돼있었음)

문제점/고민한점 → 해결방안

  • 테이블뷰 3개 가로 너비 균일하게 맞추는 법

    bottom

top 고정하고

테이블뷰 3개 옆에 다 붙이고

테이블뷰 3개를 다 묶어서

equal widths 해주면

너비가 균일하게 맞춰짐

  • 지난 날자 빨간 줄 어케하지?

double 값으로 오면

date formatter로 형식 변경해서

오늘 날짜랑 비교하면 될듯

가짜 데이터 값도 double 값으로 넣음

  • 날짜 비교하기

오늘 날짜도 빨간줄이 되면 안되는데 ^.ㅠ

플레이그라운드에서 실행했더니 내가 의도한건 오늘이면 true여야 할 것 같은데
false가 나옴

  • 해결 방법

    원인: 2021-06-29(=2021-06-29 00:00:00) 랑 2021-06-29 07:23:01 를 비교해서 저런 결과가 나오는듯

    해결 방법: 부등호의 방향을 >=에서 <=로 바꿨더니 내가 원하는 데로 제대로 나옴 ^.ㅠ

    한가지 의문은 플레이그라운드에 now 찍어보면 오른쪽에 현재 시각이 제대로 나오는데

    왜 프린트하면 요상하게 바뀌는 걸까?

    지정해준 dateFormat으로 변환하는 과정에서 그렇게 된건가? 🤔

profile
iOS Developer

0개의 댓글