[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..
[iOS 오토레이아웃 ] 제약조건구조 ( Anatomy of a Constraint )from Auto layout Guide - Getting Started - Auto Layout Without Constraints 제약조건은 하나의 식입니다. 대부분의 제약조건은 두 개의 뷰의 관계를 나타냅니다. 뷰는 layout guide나 safe area 등도 될 수 있습니다. 또한 하나의 뷰의 서로다른 속성에도 제약조건을 걸 수 있습니다. 같은 성격일 때만요. 예를 들면 view의 width height ratio가 있습니다. 또한 height나 width에 강제로 값을 줄 수 도 있는데 이 때는 seconditem은 없고 second attribute는 'nt an attribute'로 나타내고 multip..
[iOS 오토레이아웃 ] 제약조건 없이 오토레이아웃 만들기from Auto layout Guide - Getting Started - Auto Layout Without Constraints 제약조건이 많아지면 많아질수록 복잡해진다. stack view를 쓰면 그나마 줄어들고 관리하기도 쉽다. 스택뷰 설명2018/07/05 - [iOS] - [ios autolayout ]What is the StackView intrinsic content size가 있은 뷰가 stack view 안에 들어가면 stack view도 그 사이즈대로 되고, 없다면 IB가 기본값을 준다. 그리고 자식뷰들의 CHCR도 고려해야 한다. stack view를 중첩해서 쓸 수 있다. stack view로만 안 될때만 제약조건을 쓰라..
[iOS 오토레이아웃 ] 오토레이아웃 이해하기from Auto layout Guide - Getting Started - Understanding Auto Layout 오토레이아웃은 다양한 변화에 유연하게 대응하기 위해 만들어졌습니다. 변화는 크게 외부 변화와 내부 변화로 나뉩니다. 외부 변화OS X - 에서 창 크기롤 저잘할 때 iOS - 아이패드에서 Split뷰를 사용할 때와 안 할 때 - 장치를 회전할 때 - 통화할 때나 녹음할 때 상단에 bar가 나타나거나 사라질 ㄹ때 - size class를 대응할 때 - screen size가 달라질 때 이러한 변화는 실행시간에 일어납니다. (앱을 사용할 때) 실행시간에 스크린 사이즈가 변화지 않더라고 오토레이아웃을 적용하는 게 좋습니다. iPhone 4s부터..
from apple auto layout guide[iOS 오토레이아웃 Views with Intrinsic Content Size] Two Buttons with Size Class-Based Layouts 이번에는 size class를 이용한 예제입니다. size class는 iPhone과 iPad에 가로와 세로를 규격화한 것입니다. Compact,Regular 그리고 2개를 다 포함하는 Any까지 3가지 입니다. 가로 3가지 세로가지 하면 9가지가 됩니다. 그리고 제약조건의 size class는 기본적으로 AnyAny입니다. 보다 자세항 사항은 아래 링크에서 확인하세요~https://developer.apple.com/design/human-interface-guidelines/ios/visual-..
from apple auto layout guide[iOS 오토레이아웃 Views with Intrinsic Content Size] Two Buttons with Equal Spacing 이 예제는 겉으로보기에는 Two Equal-Width Buttons()와 같다. 하지만 이 예제에서는 두 버튼의 너비는 가장 길이기 큰 text를 기준으로 같아진다. 충분한 공간이 있으면 두 개의 버튼의 너비는 가장큰 text를 담고 있는 버튼의 너비까지 늘어난다. 추가적으로 두 개의 버튼 사이에 있는 여분의 공간은 똑같이 나눠진다. Two Buttons width Equal Spacing 예제와 Two Equal Width Buttons의 차이 vaView and Constraints Leading Dummy Vie..
from apple auto layout guide[iOS 오토레이아웃 Views with Intrinsic Content Size] Three Equal - Width Buttons 전 예제(2018/08/02 - [iOS] - [iOS 오토레이아웃 Views with Intrinsic Content Size] Two Equal - Width Buttons)에서 버튼 하나가 추가 됐습니다. View and Constraints Short Button.Leading = Safe Area.Leading + 16Medium Button.Leading = Short Button.Trailing + StandardLong Button.Leading = Medium Button.Trailing + Standard..
from apple auto layout guide[iOS 오토레이아웃 Views with Intrinsic Content Size] Two Equal - Width Buttons width가 같은 두 개의 버튼을 만드는 예제입니다. 전에 했던 예제에 비해 간단합니다. width Intrinsic Content Size를 고려하지 않아서 별로 좋지 않은 예제라고 생각됩니다. 그래서 예제로 넣었을 수 도 있겠습니다. View and Constraints Short Button.Leading = Safe Area.leading + 16Long Button.Leading = Short Button.Trailing + StandardLong Button.Trailing = Safe Area.Trailing + ..