SnapKit을 이용해서 코드로 오토레이아웃을 설정해보겠습니다. 이 글은 baechukim.tistory.com/23 를 같이 보시면 좋습니다. 완성된 화면입니다. SnapKit에서는 translatesAutoresizingMaskIntoConstraints = false 를 해주지 않아도 됩니다. 오토레이아웃 설정하기 private func createUI() { self.navigationItem.title = "SnapKit" view.addSubview(tableView) tableView.snp.makeConstraints { maker in maker.edges.equalTo(view) } } 스냅킷을 사용하지 않는다면 아래와 같이 작성해야합니다. private func createUI() {..
오토레이아웃을 코드로 작성하는 방법은 3가지가 있습니다. 1. Initializer //예시 let leading = NSLayoutConstraint(item: blueView, attribute: .leading, relatedBy: .equal, toItem: bottomContainer, attribute: .leading, multiplier: 1.0, constant: 0) 2. VisualFormat //예시 let horzFmt = "|[b]|" let views: [String: Any] = ["b": blueView] let horzConstraints = NSLayoutConstraint.constraints(withVisualFormat: horzFmt, options: [], me..
Programmatically Creating Constraints 코드로 오토레이아웃 만드는 방법엔 3가지가 있습니다. 스토리보드로 뷰 등을 만들고 제약을 코드로 지정할 때 translatesAutoresizingMaskIntoConstraints = false 를 꼭 해야합니다. Layout Anchors // Get the superview's layout let margins = view.layoutMarginsGuide // Pin the leading edge of myView to the margin's leading edge myView.leadingAnchor.constraint(equalTo: margins.leadingAnchor).isActive = true // Pin the tr..
Working with Constraints in Interface Builder 오토 레이아웃 제약을 인터페이스 빌더에서 설정하는 세가지 옵션 1. 컨트롤 드래그 2. Pin과 Align 툴 3. 인터페이스 빌더가 설정 Control-Dragging Constraints 두 뷰 사이에 제약을 만들려면 컨트롤 클릭해서 다른 뷰로 드래그합니다. 드래그해서 놓으면 다음과 같은 메뉴가 나옵니다. 캔버스 내의 아이템에서 할 수 있고, scene의 도큐먼트 아웃라인에서도 설정 가능합니다. 인터페이스 빌더는 현재 뷰의 프레임을 기준으로 제약을 만듭니다. 그렇기 때문에 뷰의 위치를 정확하게 잡고 제약을 설정해야합니다. 필요하다면 제약을 나중에 수정할 수 있습니다. Using the Stack, Align, Pin a..