-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
<4주차> hugging, resistance에 대해서 설명하시오. #21
Comments
Content Hugging & Compression ResistanceIntrinsicContentSize컨텐츠의 고유 사이즈 (UILabel, UIButton, UIImageView 등은 만들 때 너비와 높이를 지정하지 않아도 고유 사이즈가 설정된다.)
Content Hugging고유 사이즈의 최대 크기에 제한을 두는 것으로, 크기가 그 값보다 작아질 수 있다. Compression Resistance고유 사이즈의 최소 크기에 제한을 두는 것으로, 크기가 그 값보다 커질 수 있다. Content Hugging과 Compression Resistance에서 A, B 두 개의 UILabel 에서 A보다 B의 Content Hugging 우선순위가 높다면 A의 크기가 커진다. 또, 한 개의 버튼의 width값의 우선순위가 Compression Resistance의 우선순위보다 작다면 width로 설정한 값보다 버튼의 width가 커진다. |
Content Hugging and Compression ResistanceContent hugging : 최대 크기에 대한 제한 / hugging이라는 말 그대로 안는다는 것을 연상하면 된다. 베게를 안으면? 원래의 크기보다 작아진다.Compression resistance: 최소 크기에 대한 제한 / 원래의 크기보다 더 커지거나 많은 부분을 표현할 수 있다.(트레일링의 priortiy보다 compression resistance의 priority가 높으면 ..처럼 표현이 안되는 부분도 표시된다.) intrinsicContentSize UIKit의 UIView의 인스턴스 프로퍼티View 자체의 속성을 고려한 View의 자연 크기 , 의역하자면 View 자체 본질의 크기 var intrinsicContentSize: CGSize { get } intrinsicContentSize가 존재해야, UIButton, UILabel 등의 View들이 Width와 Height 값을 가질 수 있는겁니당. 예시height 50, width 100 인 Label 2개가 있다고 생각하고, 두 Label이 content hugging이 251이라면 지금과 같은 크기를 유지합니다. 주어진 크기보다 표시되는 text가 길어진 Label -> EX( AB...Z) |
hugging resistance 둘의 차이 resistance - 공간이 부족할 때 어떤것을 줄이고 늘릴 것인지 [참고링크](https://nsios.tistory.com/98 |
일단 오토레이아웃에서 사용되는 값이다. 여기서 Priority을 설정할 수 있는데 기본으로 제공해주는
IntrinsicContentSize란?
|
Content hugging, Compression resistance 모두 AutoLayout Priority 값입니다.
|
진짜 처음 공부하는 것이고 면접때 물어봤으면 모른다라고 답했을듯 먼저 공부를 해보고 답변하겠습니다
Content PriorityContent priority에는 두 종류가 있다.
두개가 반대인것 같은데, Compression이 압축이라는 뜻 -> 압축 -> 민다 -> 작아짐 이므로 그럼 위와 같은 경우에서 priority를 변화시켜 보겠습니당 예상 : 250으로 우선순위가 낮아졌으니 낮아진 객체가 커질것이다 (Hugging은 커진다) 놀랍게도 에러가 사라지고 다음과 같은 그림이 됩니다! 우와~- 그럼, Compression resistance를 조작해 봅시다. 이렇게 두 라벨에 엄청 긴 라벨을 넣어주었습니다. 그럼 에러가 변경되는데, Compress Priority를 변경해주라는 에러가 나옵니당 우와 그럼, 한 라벨의 Compress Priority를 변경해주면, 가만히 있지는 않고 B가 줄어든만큼 늘어나게 되네요! 정리 :
두개가 반대인것 같은데, Compression이 압축이라는 뜻 -> 압축 -> 민다 -> 작아짐 이므로 요렇게 정리가 됩니다. 끝. |
이 둘을 알기 전에 먼저 알아야 할 것은 고유 컨텐츠 크기(Intrinsic Content Size)이다. Intrinsic Content Size뷰의 고유 컨텐츠 크기는 뷰가 갖는 원래의 크기, Label의 고유 컨텐츠 크기는 Label의 텍스트 크기이고, 이미지의 고유 컨텐츠 크기는 이미지 자체의 크기이다. Content hugging Priority컨텐츠 고유 사이즈 보다 뷰가 커지지 않도록 제한하는 우선도이다. Content compression resistance priority컨텐츠 고유 사이즈보다 뷰가 작아지지 않도록 제한한다. |
오토레이아웃을 잡게 되는경우 content에 대해 hugging과 resistance에 대한 우선순위를 잡게 되는데요 간단하게 알아보자면 hugging priority의 우선순위가 높은 경우 -> 해당 object 크기 유지!! 낮으면 크기가 늘어남 compression resistance priority의 우선순위가 높은 경우 -> 해당 object 크기 유지!! 우선순위가 낮으면 크기가 작아짐!! hugging -> 공간이 남을 경우에 무엇을 늘려줄지 정해주는 개념!!! compression -> 공간이 부족할 경우 무엇을 줄여주는지 정해주는 개념!!! |
No description provided.
The text was updated successfully, but these errors were encountered: