프로그래밍/iOS 배포

iOS 출시 프로젝트 8일차 - UIDatePicker, UIPickerView, NSLayoutConstraint

yeop96 2021. 11. 23. 03:27

스프린트3

월요일로 스프린트 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/