[AutoLayout] s y stem Layout Size Fitting Size 이제 고민 안 해도 돼!
2930 단어 iOSAutoLayout
여러 번 까먹어서 썼어요.
다음 두 가지 정보
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize;
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize
withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority
verticalFittingPriority:(UILayoutPriority)verticalFittingPriority;
공식.https://developer.apple.com/documentation/uikit/uiview/1622624-systemlayoutsizefittingsize
용도
AutoLayout이 설정한 View 클러스터에서 콘텐츠를 설정한 후 적절한 높이, 너비 등을 얻을 수 있습니다.
기본적
targetsize에 대해서 말하자면 대충.
UI LayoutFitting ExpandedSize
U I L에 대한 ayoutFittingComporessedSize 지정
ExpandedSize는 최대한 크게.
ComporessedSize 최소화
이상
...그나저나 징징거리기만 하면 많이 나온다
하지만 잘 돌아가지 않는 부분이 많기 때문에 어떤 구조인지 이해해야 한다
UILayoutFitting??
U I LayoutFitting Expanded Size, U I L youtFitting Comporessed Size는 CGSize입니다.
일지를 내자마자 알았다
UI LayoutFittingExpandedSize(width,height)=(10000)
U I L ayoutFittingComporessedSize는 (width,height) = (0,0)
systemLayoutSizeFittingSize:UILayoutFittingCompressedSize;
즉systemLayoutSizeFittingSize:CGSizeMake(0,0);
같다근데 그것만은 잘 모르겠어요.
FittingPriority
UIView.딱 보니까 H가 이렇게 써있어요.
- (CGSize)systemLayoutSizeFittingSize:(CGSize)targetSize NS_AVAILABLE_IOS(6_0); // Equivalent to sending -systemLayoutSizeFittingSize:withHorizontalFittingPriority:verticalFittingPriority: with UILayoutPriorityFittingSizeLevel for both priorities.
즉, 아래의 두 값은 같다.// これと
systemLayoutSizeFittingSize:targetSize;
// これ
systemLayoutSizeFittingSize:targetSize
withHorizontalFittingPriority:UILayoutPriorityFittingSizeLevel
verticalFittingPriority:UILayoutPriorityFittingSizeLevel;
U I Layo u u t wority Fitting Size Level은 UIlayout Prority에서 가장 낮은 것(=50)정황
그러니까 이런 상황.
예를 들어, s stemLayoutsize FittingSize: U I La youtFitting ComporessedSize는
(width, height) = (0, 0)의 빨간 상자에 대상을 넣은 View는 여분을 0으로 설정하고, Horizontal과 Vertical의 LayoutProry를 50으로 설정하면 AutoLayout의 결과 사이즈가 되돌아온다.
이런 상태.
제대로 작동하지 않을 때
오토Layout에 익숙해졌다면 이런 내용을 이해할 수 있다면 제대로 움직이지 못하는 이유를 생각하게 될 것 같다.
흔히 볼 수 있는 모델로, 예를 들어 Horizontal을 고정시키려면 높이만 얻으면 가로폭을 고정하면 된다.
systemLayoutSizeFittingSize:CGSizeMake(self.view.frame.size.width,0)
withHorizontalFittingPriority:UILayoutPriorityRequired
verticalFittingPriority:UILayoutPriorityFittingSizeLevel;
스케줄러:있지?🤔 이곳은 자주 혼란스러워요. 뭔가 잘못되면 미안해요)
Reference
이 문제에 관하여([AutoLayout] s y stem Layout Size Fitting Size 이제 고민 안 해도 돼!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/netetahito/items/8b363d4c7fe5f1ca5636텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)