
tableView.reloadData() 테이블뷰를 사용하다보면 셀의 데이터가 바뀔 때가 있음. 예를 들어, 버튼을 눌렀을 때 셀을 추가하는 등의 액션이 있는데 reload를 해주지않으면 반영되지 않음. 그래서 tableView.reloadData() 메서드를 꼭 실행해야함. 하지만 데이터가 바뀔때마다 reloadData()를 이용해서 모든 데이터를 갱신할 필요가 없을 수도 있음. -> reloadSections나 reloadRows를 이용하면 특정 셀, 특정 섹션만 갱신할 수 있음. TableViewCell Reuse mechanism 테이블뷰가 스크롤되면서 위의 셀이 사라지면 사라지는 셀은 queue로 들어가고, queue에 있는 셀이 올라와 보여지게되는 구조. -> 이미 할당된 메모리의 셀을 재사용..

UITableViewController vs UIViewController에 tableView 추가 -> UITableViewController는 루트뷰가 테이블뷰이지만, UIViewController는 UIView -> 겉보기에는 차이가 없음 -> 화면에 테이블뷰만 들어있을때는 UITableViewController가 디자인하기 더 편하지만, 화면을 자유롭게 구성하고싶다면 UIViewController에 테이블뷰를 추가하는게 더 나음 -> Connection inspector를 보면 UITableViewController는 dataSource와 delegate가 자동으로 연결되어있고 tableView가 지울 수 없는 요소이지만, UIViewController에 테이블뷰를 추가하면 따로 dataSourc..

감정 다이어리 기능 추가 현재의 값을 UserDefaults를 이용해 저장 reset버튼을 이용해 전체 초기화 처음에 분명 UserDefaults로 알맞게 값을 저장해줬는데 제대로 반영이 안됐었음 -> 문제는 없었음. 다만 UserDefaults가 반영되기위한 시간이 더 필요했던거임. DatePicker 최소 크기 iPhone 8Plus 기기에서 전체 화면 height의 0.4정도로 설정하면, DatePicker가 inline인 경우에 시간을 설정하는 부분이 잘림. -> 비율로 설정하는 경우 최소 0.5는 되어야할듯. DateFormatter()를 이용해 string -> date로 바꾸기 dateFormat을 string형식으로 저장된 날짜 형식과 똑같이 작성해주어야함. (해결하는데 오래걸렸음ㅠ) 위처..

뷰컨트롤러 생명주기 viewDidLoad() -> 컨트롤러의 뷰가 메모리에 올라갔을때 실행됨. viewWillAppear() -> 뷰컨트롤러에 뷰가 뷰 계층구조에 추가될 예정이라고 알려줌. viewDidAppear() -> 뷰컨트롤러에 뷰가 뷰 계층구조에 추가되었다고 알려줌. viewWillDisappear() -> 뷰컨트롤러에 뷰가 뷰 계층구조에서 지워질 예정이라고 알려줌. viewDidDisappear() -> 뷰컨트롤러에 뷰가 뷰 계층구조에 지워졌다고 말해줌. 실습을 통해 언제 실행되는지 확인해봄. 시뮬레이터를 실행시켰을때 탭바를 이용해 뷰를 바꿔주었을때 다시 이전 화면으로 탭바를 이용해 돌아갔을때 여기까지 알 수 있는 점 -> 화면이 처음 보여질때만 viewDidAppear가 실행되고 그 이후엔 ..

ViewController Transition 화면을 새롭게 띄워주었으면 띄운 화면을 사라지게끔 구현해야 함. -> 계속 쌓이게되면 앱이 꺼질 수도 있음. 화면 전환은 인터페이스 빌더와 코드 두 가지 방법으로 구현할 수 있음. 인터페이스 빌더 -> 구현한 화면이 보이기때문에 화면 전환에 대한 방향 짐작 가능 -> 구현하기 쉬움 -> 세부적인 대응을 하기 어려움. 코드 -> 보여지는 것이 없기때문에 화면 전환에 대한 방향 짐작 어려움. -> 구현이 상대적으로 어려움 -> 세부적인 대응 가능 아이폰에서는 Show, Modal의 두 가지만 사용 show 소스코드에서는 Push로 띄우는 것과 같고, Pop으로 내림. 인터페이스 빌더에서 show를 이용하면 오른쪽에서 등장하게됨 -> 다만, 오른쪽에서 나오게하려면..
- Total
- Today
- Yesterday