iOS/AutoLayout 3

Autolayout 제약걸기 (코드 - 1)

□ 버튼 생성 및 제약 걸기 let btn1: UIButton = .init(frame: .init()) btn1.backgroundColor = .yellow btn1.setTitle("안녕하세요", for: .normal) btn1.setTitleColor(UIColor.black, for: .normal) self.view.addSubview(btn1) btn1.translatesAutoresizingMaskIntoConstraints = false // false - AutoLayout을 따르겟다 // true - frame을 따르겠다. btn1.topAnchor.constraint(equalTo: self.view.topAnchor,constant: 100).isActive = true btn1..

iOS/AutoLayout 2023.01.07

Intrinsic Content Size, Priority

Intrinsic Content Size 컨텐트의 본질적인 크기를 의미한다. 다음 표를 보면 쉽게 이해할 수 있다. Label, Button, Switch, TextField는 본질적인 크기를 가지고 있어서 오토레이아웃을 지정하는 경우 에러가 나지 않는다. Priority Hugging Priority 두 오브젝트 중 한 오브젝트가 커져야 하는 상황일 때 우선순위가 낮은 오브젝트는 Instrinsic size를 유지하지 않고 커진다. Compression Resistance Priority Hugging Priority와 반대되는 상황이다. 한 오브젝트가 크기 및 내용이 너무 길어서 다른 오브젝트 영역을 넘어갈 때 둘의 우선순위가 같아서 어떤 오브젝트를 줄여야 할지 모를 때 사용한다. 해당 우선순위가 높..

iOS/AutoLayout 2023.01.07

Frame vs Bounds

Frame Super View 좌표계에서 View의 위치와 크기를 나타냄 FirstView의 SuperView는 루트 View가 된다. SecondView의 SuperView는 FirstView이다. (클래스 상속할 때 슈퍼클래스와 같은 Super 같다) frame origin(x, y) frame의 origin(x, y) 좌표는 SuperView의 원점을 (0,0)으로 놓고 원점으로부터 얼마나 떨어져 있는지 나타낸다. SuperView의 원점은 왼쪽 맨 위에 해당한다. 그래서 frame의 origin좌표는 SuperView에서 x, y 만큼 떨어져 있다고 표현할 수 있다. □ frame origin 좌표 변경한 경우 secondView의 frame origin 좌표를 변경하는 경우 thirdView도 ..

iOS/AutoLayout 2023.01.07