[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 + ..
[iOS 오토레이아웃 Views with Intrinsic Content Size] Fixed Height Columns 이번 예제는 아래 2개 예제를 합친 예제입니다. Dynamic Height Label and Text Field 2018/08/01 - [iOS] - [iOS 오토레이아웃 Views with Intrinsic Content Size] Dynamic Height Label and Text Field Fixed Height Columns 2018/08/01 - [iOS] - [iOS 오토레이아웃 Views with Intrinsic Content Size] Fixed Height Columns 그렇게 어렵지 않습니다만, 추가해야할 제약조건이 많이 늘어나기 때문에 상당히 귀찮습니다. 개념자..