# layoutIfNeeded

4개의 포스트
post-thumbnail

layoutSubviews(), draw() 는 언제 사용할까? 뷰를 업데이트 하고싶을 때 원리.

문제: 컬렉션뷰 셀 안에 있는 gradient 뷰가 첫 시점에 안나오고 스크롤을 한번 다녀와야지만 적용이 되는 문제. 위 문제의 원인이 뭘까..🤔 테이블뷰 셀 안에 컬렉션뷰 셀에서 화면 reload 하는 시점이 애매해서 gradient 뷰의 프레임을 제대로 못받아오는 것 같다. > 해결방법! 레이아웃 업데이트를 시켜주자! 어떻게?? layoutSubviews() draw() layoutIfNeeded() setNeedsLayout() setNeedsDisplay() displayIfNeeded() 다 비슷한거 아녀..? 너무 헷갈려... 일단 첫번째로 override 함수인 layoutSubviews()를 호출해서 그 안에 gradientLayer의 프

2023년 7월 7일
·
0개의 댓글
·
post-thumbnail

Layout

iOS 화면 업데이트는 어떻게 되는 걸까? draw, layoutIfNeeded, setNeedsLayout 등. 이해가 안가는 것들이 너무 많았다. 오늘 한번 부셔보자! Main Run Loop 해당 메서드들을 이해하기 전에, View의 Layout이 어떤 식으로 그려지는지에 대한 이해가 필요하다. 핵심은 Run Loop이다. image iOS 애플리케이션의 main run loop는 User의 모든 input event를 받고 적절한 응답을 하기 위해 존재한다. 모든 interaction은 event queue를 거쳐 애플리케이션으로 전달된다. 애플리케이션 내의 UIApplication 객체는 event queue에서 event를 하나씩 꺼내고 해석하여 하위 객체로 전딸한다.

2022년 3월 7일
·
0개의 댓글
·
post-thumbnail

[iOS] View Layout Cycle

_면접 질문에서, layoutIfNeeded와 setNeedsLayout의 차이가 정확히 무엇인지, 1/60 프레임을 기다리지 않고 실행된다는 것이 정확히 어떤 것인지에 대한 대답을 제대로 하지 못했다... View가 메모리에 적재되고 난 이후에 화면에 표시되기까지를 정리해보자! _ View Layout Cycle View를 그리는 단계는 크게 보면 3단계로 나눌 수 있다. 바로 Constraint update, Layout Update, Render Constraint Update : AutoLayout을 잡기 위해서 수식을 업데이트 하는 단계, 제약 조건일 뿐이며 Constraint를 지정하는 것만으로는 영향을 주지는 못합니다. Layout Update : Constraint 혹은 frame 기반으로 View의 위치와 크기를 결정하는 단계입니다. Render : View를 그리는 단계 그리고, 이후에도 속성들이 변경되면 일련

2021년 12월 26일
·
0개의 댓글
·
post-thumbnail

[iOS] setNeedsLayout & layoutIfNeeded

이게 얼마만의 iOS 포스팅인가. 부끄럽지만 정말 오랜만에 iOS 관련 공부를 다시 시작했고 면접을 겪으며 공부할 필요성을 느꼈던 내용들 위주로 하나씩 공부해보려 한다. 오늘은 UIView 의 위치, 모양 변화를 주면서 차이를 잘 모르고 아무렇게나 사용해왔던, setNeedsLayout() 과 layoutIfNeeded() 메소드에 대해 공부해보았다. Main Run Loop & Update Cycle 먼저 두 메소드에 대해 알아보기 이전에 Main Run Loop 와 Update Cycle 의 개념이 필요하다. 어플리케이션이 실행되면 UIApplication 이 메인 스레드에서 main run loop 를 실행시키게 되고 **main run l

2021년 11월 2일
·
0개의 댓글
·