iOS 출시 프로젝트 8일차 - UIDatePicker, UIPickerView, NSLayoutConstraint
월요일로 스프린트 3 시작이 되었다.
지난 스프린트2에서 완료 못 한 이슈 두 개도 넘어왔고 이번 주 스프린트 4까지는 기능을 거의 구현해야 하기 때문에 시간을 많이 써야겠다.
오늘 놀라운 사실을 하나 알았다..! 스토리 보드 Constraints도 프로퍼티 연결이 가능하다는 점이다.
내가 개발한 팝업이 네비게이션이 있을 때 없을 때 레이아웃 값을 바꿔줘야 해서 고민했는데 스토리 보드 NSLayoutConstraint를 프로퍼티 연결을 해 해당 객체의 .constant 값을 바꿔주니 쉽게 해결되었다..!
즉 storyboard에서 UIButton이나 기타 뷰 컴포넌트를 소스의 프로퍼티(ObjC: @property IBOutlet button, swift: @IBOutlet weak var button)와 연결하는 법처럼 Constraints도 객체이기 때문에 storyboard에서 손쉽게 드래그 앤 드롭으로 프로퍼티를 연결이 가능하다. 객체 타입은 NSLayoutConstraint이며 해당 객체 constant값 조작이 가능하다.
그리고 오늘은 UIDatePicker, UIPickerView를 공부하며 프로젝트에 적용시켰다.
특히 UIPickerViewDelegate, UIPickerViewDataSource도 테이블뷰처럼 익숙해지면 자유롭게 조작 가능해지고 직관적인 UI가 될 거 같아 재밌었다.
또 클로저를 통해 데이터 전달과 기능을 구현했고 텍스트 뷰 플레이스 홀더를 막일로 구현했다.
오늘 개발에 딱히 이슈는 없었고 새로 안게 많았다. (스택오버플로우 쵝오)
그리고 화면 생명주기를 좀 더 딥하게 공부해야 할 것 같다.
그 외 본 것
SafeArea 높이 가져오기
https://stackoverflow.com/questions/46829840/get-safe-area-inset-top-and-bottom-heights/53864017
탭 바 숨기기
https://stackoverflow.com/questions/28777943/hide-tab-bar-in-ios-swift-app
Extension 네이밍
https://stackoverflow.com/questions/33942483/swift-extension-example
https://stackoverflow.com/questions/46173257/best-practices-for-extensions-of-types-in-swift
Retain Cycle 메모리 이야기
https://baked-corn.tistory.com/30
피커 뷰 활용하신 분 예제
https://moonibot.tistory.com/19
데이트 피커
https://kasroid.github.io/posts/ios/20201030-uikit-date-picker/