TIL #18

Donghee Lee·2022년 11월 26일
0

TIL

목록 보기
18/18

오늘 한 일.

면접 복기 내용들을 학습했다.
주로 UIViewController & UIView LifeCycle

새로 배운 것.

  • SnapKit의 updateConstraints와 remakeConstraints의 차이는
    updateConstraints 메서드는 constraints들을 추가하거나 업데이트할 때 사용하고
    remakeConstraints는 지금까지 설정해둔 모든 Constraints가 없어지고 재설정된다.

  • Constraint to margins가 무엇이고, 언제 쓰는지
    해당 View의 내부 뷰(SubView)들을 배치할 때 마진을 주기 위해 사용한다.
    해당 View의 Layout Margins를 Default 말고, Fixed나 Language Directional로 변경한 뒤
    SubView를 추가할 때 Constraint to margins를 체크해줘야함!
    정리) 내부 뷰에 마진을 주고 싶은 SuperView의 AutoLayout을 설정할 땐 Constrain to margins를 체크할 필요 없는 대신
    주고싶은 마진 만큼 Layout Margins를 설정해주고, SuperView의 Constrain to margins 값을 따르고 싶은 SubView들이 AutoLayout을 설정할 때 Constrain to margins을 체크해줘야하 한다.

  • UIView와 UIVC의 라이프사이클을 보다가 다양한 init 생성자의 역할을 공부하는데 헷갈리는 개념이 많다.
    일단 오늘 본 내용은 loadView 메서드 이전에 불리는 작업들이다.
    init(nibName: bundle:)은 xib 파일을 빌드했을 때 생성되는 특정 번들에 있는 nib file을 VC로 만들 때 사용한다. 또한 스토리보드 파일을 빌드하면 생성되는 '.storyboardc' 패키지 내부에도 nib 파일이 있지만, 이 파일들을 직접 호출하면 런타임 에러가 발생한다. 아직, 왜 런타임이 발생하는지까진 잘 모르겠다.
    따라서 init(nibName: bundle:)은 '.xib'파일을 사용한 VC 생성에 사용한다.

내일 일정.

init 생성자에 대해 더 깊게 파보자.
그래야 UIView & UIVC 의 LifeCycle을 제대로 이해할 수 있을 것 같다. 찝찝하다.......

오늘 느낀 점.

UIViewController viewDidLoad 이후의 라이프 사이클만 생각했는데, UIView를 포함해서 좀 더 시야를 넓혀서 학습했어야 하는데 후회스럽다~~~ 이제라도 하자!!

profile
Better than Yesterday

0개의 댓글