Tutorial

UIScreen기준으로 비율로 코드로만 설정했었지만 매번 계산의 복잡함, 미세한 조정이 힘듬(?), 코드가독성이 떨어짐

상위 뷰와의 제약을 걸기, constraints는 edge에서 n만큼 제약을 거는데 고정적이다.

alignment를 사용해서 비율 조정

2개를 적절히사용 pin과 align

성능 관련 팁

Note: Constraint은 그대로 두고 View를 Hidden하는 비용이 Constraint을 변경하거나 추가/제거를 하는 작업보다 비용이 훨씬 작습니다. 따라서, View를 숨김 처리하는 것만으로 레이아웃이 올바르게 표현될 수 있다면 Constraint은 변경하지 않는 것이 성능적으로 좋습니다.

Render Loop

Render Loop는 View의 bounds가 변경되거나, 회전 이벤트가 발생하거나, setNeedsLayout(), layoutIfNeeded()가 호출될 때마다 수행됩니다. 바꿔 말하면, Render Loop의 메소드들은 View의 레이아웃 변경이 필요할 때마다 호출되므로, 매우 많이 호출됩니다. 그렇기 때문에 updateConstraints()을 오버라이딩하여 Constraint 업데이트를 수행할 때, 별도 예외처리 없이 Constraint 추가/제거 작업을 반복적으로 수행할 경우 Layout 성능에 이슈가 발생할 수 있습니다. 그러므로 Render Loop 사이클 안에서 어떤 처리가 필요할 경우 아래 사항을 우선적으로 고려하여 Constraint 작업을 수행하는 것이 좋습니다.

Relative to margins