안녕하세요. 엘림입니다🙇🏻♀️
오늘은 Unable to activate constraint with anchors 오류를 알아보겠습니다.
아래는 제 이야기를 풀어나갔는데, 귀찮으시거나 바쁜분들
혹시 view에 addSubview 빠진것이 있는지, 순서가 잘못되진 않았는지 확인해보세요.
요약하면, 그 이야기입니다.😸
이 글은 공부하면서 작성한 글이기 때문에 잘못된 정보가 있을 수 있습니다.🥺
금방 잊어버릴... 미래의 저에게 다시 알려주기 위한 글이다보니
혹시라도 틀린 부분이 있다면, 댓글로 친절하게 알려주시길 부탁드립니다.🙏
코드로 UI를 작성하면서, 가끔 이 에러를 봅니다...(이제 보지말자. 정신차리자😬)
Thread 1: "Unable to activate constraint with anchors <NSLayoutXAxisAnchor:0x6000034dcec0 \"UILabel:0x12260c090.centerX\"> and <NSLayoutXAxisAnchor:0x6000034dcf00 \"UIView:0x12260ab30.centerX\"> because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies? That's illegal."
뭔데... 왜 장황한데.. 대체 뭐라는건데...ㅠㅠ...
앱이 터진다! 혼자 꺼진다! 오류가 뜬다! 하면 멘탈이 붕괴되는 당신!!
당황하지 말고 천천히 글을 읽어보세요. 번역해도 모르겠으면 구글에 검색해봐요. 그래도 못찾으면 주변사람에게 물어봐요..(저 자신에게 하는 말입니다..🤧)
아무튼, 읽어보면... 네 뭐 저 anchors는 activate할 수 없다고 하네요.
평범한 ancestorr가 아니라며....
심지어 That's illegal. -> 그것은 불법입니다. 라니😱
내가 코드짜는게 불법이니?!! 라고 화를 내고 싶지만 컴퓨터는 거짓말 하지 않습니다.
사실 지금 제 코드를 살펴보면요.
제가 앞서 작성한 글에서 사용한 코드인데요.
이렇게 여러분... addSubview 안하고하면 터지고, 그 에러를 만나게 됩니다.
지금은 제가 일부러 보여드리려고 주석을 쳐놨지만, 불과 10분전에 저 한줄을 까먹어서 에러를 만났답니다.
근데 이 에러를 만난건 처음이 아니에요.
사실 예전 글에서도 이 부분과 관련해 중요하다고, 제가 스스로 써놓고도 또 까먹습니다.
이때는 지금처럼 아예 작성하지 않은 것이 아니고,
이렇게, constraint를 주고나서 addSubview를 했기 때문에 에러가 났답니다.
여러분도 다시 한번 코드에 addSubview가 잘 되어있는지, 그리고 위치는 알맞은지 다시 확인해보세요!!
자 그럼 이 에러 잡고, 다시 코드짜러 갑시다. 화이팅🙌
잘못된 것이 있거나, 궁금한 것이 있다면 언제든지 댓글✍🏻이나 메일📬 주세요오🙇🏻♀️
참고 링크👍👍👍
[iOS][Swift] - 스토리보드 없이 코드로만 UI 구현하기 (SceneDelegate에서 window설정)
https://velog.io/@lina0322/iOSSwift-스토리보드-없이-코드로만-UI-구현하기-SceneDelegate에서-window설정
[iOS][Swift] - 코드로 UI 구현하기 (part.1 UILabel, UIButton, UISlider)
https://velog.io/@lina0322/iOSSwift-코드로-UI-구현하기-part.1-UILabel-UIButton
저도 이 오류때문에 며칠동안 해결 못하고 있었는데 ㅠㅠㅠ 이 글을 보고 나서 다시 확인해보니 addSubview를 안 적었더라고요 ㅋㅋㅋㅋ ㅎㅎㅎ 감사합니다!!