티스토리 뷰
안녕하세요 밀쿄입니다,
오늘은 translatesAutoresizingMaskIntoConstraints에 대해서 알아보겠습니다.
먼저 애플문서를 보기전에 이름에서 추측해봅시다.
translates AutoresizingMask Into Constraints로 쪼개볼 수 있네요.
다시 말하면 AutoresizingMask를 Constraints로 번환한다? 이정도쯤 상상할 수 있겠습니다.
그럼 애플 문서를 보겠습니다, ( 애플문서는 늘 그렇듯 여기 입니다. )
View의 AutoresizingMask가 AutoLayout Constraints으로 변환되는지의 Bool값 이라고 되어 있네요.
저희 상상이 대강 맞았습니다.
그럼 대체 Autoresizing Mask가 무엇이냐가 중요하겠네요.
그럼 그 놈에 대한 애플 문서를 보겠습니다 ( 애플 문서는 여기 입니다. )
슈퍼뷰의 bounds가 변경될 때, 리시버의 size를 조정하는 방법을 결정하는 Integer Bit Mask..라고 되어있습니다.
참고로 타입은 UIView.AutoresizingMask이고 이 놈은 구조체입니다.
도통 알 수 없는 말만 가득하네요.
사실 이렇게 문서만 쫓아가다보면 머리가 아픕니다.
실제로 이쯤 적다보니 저도 멘붕이 옵니다.
사실 이 놈은 우리가 스쳐지나가면서 봤을겁니다.
다들 한 번쯤 보신 기억이 나나요??
Constraints 및 Autoresizing를 아무것도 적용하지 않았을 때 일어나는 현상입니다.
그럼 Autoresizing를 한 번 적용해보겠습니다.
이렇게 변해갑니다.
Constraints가 없어도 쭉죽 잘만 늘어가네요. 제 키도 저렇게 늘었으ㅁ...
그럼 다시 translatesAutoresizingMaskIntoConstraints로 돌아가보겠습니다.
저 위에 있는 애플 문서에서 핵심적인 거만 번역해보면
이 bool값이 true면 AutoresizingMask로 Constraints 집합을 만들고 뷰의 위치와 크기를 완전히 지정
즉, 이 값을 false로 만들지 않고서는 Constraint를 추가할 수 없으며
false로 만들었을 경우에는 모호하지 않고 충돌하지 않는 Constraints 집합을 제공을 해야한다,
또한 Interface Builder로 만들면 기본적으로 false고 programmatically로 만들면 true라고 합니다.
결론은 코드로 화면을 짤 때에는
translatesAutoresizingMaskIntoConstraints를 false로 설정해줘야한다.
그렇지 않으면 충돌한다,
(제가 작성하는 AutoLayout 관련 모든 글이 코드로 화면 짜기 위한 빌드업입니다)
그리고 제 블로그글 보다 더 상세하게 설명되어 있는 글이 있습니다.
저도 참고하고 작성했는데...사실 거의 같은 글이 되어버렸습니다.
https://zeddios.tistory.com/474
'Swift&IOS' 카테고리의 다른 글
rethrows (0) | 2020.01.09 |
---|---|
StackView + ScrollView (0) | 2020.01.02 |
[AutoLayout] leading, trailing, left, right (0) | 2019.12.26 |
날짜 비교하기 (0) | 2019.12.24 |
[AutoLayout] FirstBaseLineAnchor & LastBaseLineAnchor (0) | 2019.12.22 |
- Total
- Today
- Yesterday
- 자료구조
- 현업이그리운
- 스위프트유아이
- SwiftUI
- iOSCombine
- 결합연산자
- BBIK
- CombineLatest
- 텔큐온
- 유니온파인드
- ios
- 스택뷰
- 삨
- 콤바인
- replaceNil
- Just
- programmers
- MVC
- Queue
- Apple
- swift
- combine
- 알고리즘
- 스위프트
- ErrorHandling
- compactMap
- AutoLayout
- UIViewControllerRepresentable
- SEQUENCE
- 스유
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |