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