반응형
250x250
05-17 11:06
Today
Total
«   2026/05   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Notice
Recent Posts
Recent Comments
Link
Archives
관리 메뉴

Bill Kim's Life...

[iOS] iOS Auto Layout 에러 — “Unable to simultaneously satisfy constraints” 해결법 본문

DEV Tips/iOS

[iOS] iOS Auto Layout 에러 — “Unable to simultaneously satisfy constraints” 해결법

billnjoyce 2026. 3. 22. 12:17
728x90
반응형

개요 

Auto Layout에서 가장 흔한 에러:

Unable to simultaneously satisfy constraints.

 

의미:

  • 서로 충돌하는 제약조건이 존재함
  • iOS가 임의로 하나를 깨고 UI를 구성함

결과:

  • 레이아웃 깨짐
  • 기기별 UI 불일치
  • 디버깅 난이도 상승

문제 코드 

let box = UIView()
box.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(box)

NSLayoutConstraint.activate([
    box.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
    box.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20),
    box.widthAnchor.constraint(equalToConstant: 300) // ❌ 충돌 발생 가능
])

👉 문제:

  • leading + trailing 이미 width를 결정함
  • 여기에 width를 고정 → 충돌 발생

해결 코드

방법 1: priority 낮추기

let widthConstraint = box.widthAnchor.constraint(equalToConstant: 300)
widthConstraint.priority = UILayoutPriority(999) // 핵심
widthConstraint.isActive = true

방법 2: 불필요한 constraint 제거

NSLayoutConstraint.activate([
    box.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20),
    box.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20)
])

width constraint 제거 → 충돌 해결


한 줄 정리

Auto Layout 에러 = “서로 모순된 제약조건” → priority로 유연하게 만들어라

728x90
반응형
Comments