프로그래밍 방식으로 마스크 자동 크기 조정 및 인터페이스 작성기 / xib / nib
오른쪽 여백 표시기를 활성화하는 것이 다음을 사용하는 것과 같다는 (아마도 잘못된) 가정에 있었습니다.UIViewAutoresizingFlexibleLeftMargin내부 코드 등.
그래서 저는 이 스냅샷에 따라 다음과 같이 생각하곤 했습니다.
오늘 늦게 저는 교차 점검을 해야 했고, 이 스레드를 우연히 발견했습니다.
또한 다음 링크의 "자동 크기 조정 규칙을 사용하여 자동으로 레이아웃 변경 처리" 섹션 제목이 붙은 애플 문서도 참조하십시오. https://developer.apple.com/library/content/documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html
이제 자동 크기 조정 마스크를 프로그래밍 방식으로 설정하는 것이 xib 설정과 동일한지에 대한 새로운 개념을 알게 되었습니다.
시나리오 1: 설정만(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)다음과 같습니다.

XIB에서?
시나리오 2: 설정(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin)in code는 다음과 같습니다.

XIB에서?
나의 두 개의 갱신된 시나리오가 맞습니까?제가 지금 이해하고 있는 게 맞나요?
네, 당신은 정확하게 인용했습니다.또한, 저는 그것이 약간 거꾸로 느껴진다는 것에 동의합니다, 그래서 저는 당신의 게시물에 감사드립니다.
전처리기 매크로를 사용할 수 있습니다.UIViewAutoresizingFlexibleMargins모든 방향에서 UI 보기의 여백을 유연하게 만드는 경우.이것을 미리 컴파일된 헤더 파일에 넣어서 모든 곳에 포함시켰습니다.
#define UIViewAutoresizingFlexibleMargins \
UIViewAutoresizingFlexibleBottomMargin | \
UIViewAutoresizingFlexibleLeftMargin | \
UIViewAutoresizingFlexibleRightMargin | \
UIViewAutoresizingFlexibleTopMargin
사용.UIViewAutoresizingFlexibleMarginsUI 요소는 어느 한쪽을 껴안지 않기 때문에 중심을 유지합니다.요소를 상위 요소와 함께 증가/축소하려면 다음을 설정합니다.UIViewAutoresizingFlexibleWidth그리고.UIViewAutoresizingFlexibleHeight각각 다음과 같다.
사용하는 것을 좋아합니다.UIViewAutoresizingFlexibleMargins나중에 다음과 같이 참조할 수 있기 때문입니다.
myView.autoresizingMask = UIViewAutoresizingFlexibleMargins;
대신에
myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
위의 예와 같이 이러한 마진이 한 줄에 함께 표시되는 경우가 많습니다.그냥 읽기 힘들어요.
예, Interface Builder는 어떤 의미에서는 "역방향"입니다(또는 UIView는 보기에 따라 다릅니다).인용한 "시나리오"가 맞습니다.
상자 내부의 수직/수평 화살표(스프링이라고 함)를 활성화하면 높이/폭이 유연해집니다.그러나 외부 라인(스트럿이라고 함)을 활성화하면 해당 측면이 유연하지 않거나 유연하지 않게 됩니다.
좌측 외측 라인(좌측 스트럿)을 활성화하는 것은 활성화하는 것과 동일하지 않습니다.UIViewAutoresizingFlexibleRightMargin.대신,UIViewAutoresizingFlexibleRightMargin우측 스트럿이 비활성화된 경우 ON, 우측 스트럿이 활성화된 경우 OFF.
처음에는 상당히 헷갈리지만 자세히 보면 스프링과 스트럿에 차이가 있습니다.애플이 왜 이런 일을 했는지는 모르겠지만, 저로서는 좀 더 사용하기 쉬운 경우도 있었습니다.그리고 코드에서 반대의 속성을 사용하는 것은 훨씬 더 혼란스럽습니다.
스위프트 4는 이것을 사용합니다.
gadBannerView?.autoresizingMask = [.flexibleRightMargin , .flexibleLeftMargin , .flexibleTopMargin , .flexibleBottomMargin]
목표-C
myView.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin;
언급URL : https://stackoverflow.com/questions/7754851/autoresizing-masks-programmatically-vs-interface-builder-xib-nib
'source' 카테고리의 다른 글
| SQL Server에서 쿼리 실행 계획을 얻으려면 어떻게 해야 합니까? (0) | 2023.04.29 |
|---|---|
| Mongoose에서 외부 키 관계 만들기 (0) | 2023.04.29 |
| 이클립스를 인터페이스 방식의 유일한 구현으로 전환하는 방법은 무엇입니까? (0) | 2023.04.29 |
| Swift의 UIActivityViewController로 텍스트 또는 이미지를 공유하기 위한 기본 예제 (0) | 2023.04.29 |
| 데이터베이스 설계:계정 잔액 계산 (0) | 2023.04.29 |
