[iOS 오토레이아웃 가이드] Debugging Auto Layout - Ambiguous Layoutsambiguous layouts은 auto layout engine이 두 개 이상의 유효한 솔루션을 가질 때 발생합니다. 크게 두 가지 원이이 있습니다. - 오토레이아웃은 뷰의 사이즈와 위치를 지정하는 유일한 제약조건이 필요합니다. 보통 뷰의 방향에 2개 정도- 우선순위가 같은 제약조건 여러 개가 충돌 하면 발생 Detetcting Ambiguous layoutsunsatisfiable가 마찬가지로 IB가 해결한 방법을 알려주기는 합니다. 하지만 여러분이 원하는 솔루션을 제공하는 것은 드믈고 콘솔에 경고도 없습니다. ambiguous layout은 breakpoint걸 방법이 없습니다. 그 결과 찾아내..
[iOS 오토레이아웃 가이드] Debugging Auto Layout - Unsatisfiable Layouts auto layout 엔진이 유효한 해결책을 찾을 수 없을 때 Unsatisfiable layouts이 생긴다. 두 개 이상의 제약조건이 충돌했을 때 생긴다. Identifying Unsatisfiable Constraintsstoryboard에서 작업할 때 아래 사진에서 나온 것과 같이 빨간색원에 화살표를 본 적이 있을거에요. 저게 unsatisfiable constraints(이하 에러)를 알려주는 신호입니다. 저걸 누르면 에러 리스트가 나옵니다. 그리고 각각에 맞게 해결책을 제시해 줍니다. 하지만 모든 에러를 잡아주지는 못합니다. 현재 캔버스 사이즈에 대해서만 에러를 감지합니다. 루트뷰가..
[iOS 오토레이아웃 ] Working with Constraints in Interface Builder Rules of Thumb - 절대로 view의 위치를 지정하지 마세요. frame, bounds, center를 가지고- 가능하면 스택뷰를 쓰세요- 제약조건은 가까운 뷰끼리 맺으세요- 고정 height와 width 피하세요. 오토레이아웃의 장점이 사라질 수 있습니다. 정 필요하면 최소나 최대값만 사용- view의 의미있는 이름을 지으세요- 항상 leading과 trailing을 사용 semanticContentAtribute(ios), userInterfaceLayoutDirection(ox X)을 통해 뷰가 leading and trailing을 어떻게 해석할지 지정할 수 있음- safe are..