17.12.16 스터디

기린님

스토리보드 버그

스토리보드 상의 기기 별로 보이는 길이가 viewWillAppear 전까지 사용된다. 그래서 viewDidAppear 때 subView들의 기기별 정상 프레임이 설정되므로 기기별 프레임을 얻어서 변경하거나 하는 작업이 있을 경우 이 때 해줘야 한다.

View Life Cycle

  • layoutIfNeeded — 레이아웃 업데이트 사이클에 레이아웃을 업데이트하는 것이 아니라 바로 바꾸는 것. 시스템에 무리가가는 작업. 애니메이션에서 사용하자.
  • setNeedsLayout — 다음 레이아웃 업데이트 사이클에 작업을 해달라고 요청하는것. 좀 더 올바른 방법.

setNeedsLayout vs. layoutIfNeeded - oaksong’s Pluto I

스토리보드 관련 사항

  • Priority와 Constants.isActive를 조정하여기기별 오토레이아웃을 적용한다. 예를 들어 하나의 뷰의 제약을 같은 것을 주고 둘의 우선순위를 다르게하면 컴파일이 된다. 그리고 isActive 값을 바꾸어 레이아웃을 다르게 할 수 있다.
  • IBOutlet을 strong으로 써도 괜찮음. VC(+1) — IBOutlet(+1), View(+1) — Label(+2)인데 VC가 사라지면 View도 사라져 Label이 -1, IBOutlet도 0이 되어 Label -1이 되어 사라진다.

덧붙이면 그래도 weak으로 쓰는 것이 낫다. strong 으로 잡으면 reference 관련해서 한 번 더 체크해줘야 하기 때문에 보다 더 안전한게 사용하는 것이 낫다.

도우님

Thread와 GCD

스케줄러 정책 공부하기

GCD(Grand Central Dispatch) Dispatch Queue 종류와 메서드 - oaskong’s Pluto I