developer tip

자동 레이아웃 : Top Layout Guide가 아닌 Superview에 구속 조건을 추가 하시겠습니까?

optionbox 2020. 8. 2. 18:24
반응형

자동 레이아웃 : Top Layout Guide가 아닌 Superview에 구속 조건을 추가 하시겠습니까?


스토리 보드의 UIViewController에 UIView가 있으며 상단 가장자리와의 거리를 보는 공간에 제약 조건을 추가하려고합니다.

이제 Ctrl + ViewView의 기본보기로 드래그하여 평소대로 할 때 최상위 레이아웃 가이드로 설정하는 옵션 만 얻습니다.

앱의 어느 시점에서 메인 뷰를 약 20-50px 위로 이동하려고하면 그 일이 일어나지 않을 것입니다 ... 슈퍼 뷰에 정렬되지 않았기 때문에 이것이 발생합니다.

스토리 보드에서 수동 으로이 작업을 수행하거나 프로그래밍 방식으로 추가해야합니까?

xcode 6을 사용하고 있습니다.


구속 상수 값의 오른쪽에 화살표가 있습니다. 그것을 클릭하면, 당신은 당신이 상대적인 제약을 만들고 싶은 것을 선택할 수있는 메뉴가 나타납니다. '보기'를 선택하면보기 상단에 고정됩니다.

여기에 이미지 설명을 입력하십시오


스토리 보드에서 원하는보기를 강조 표시 한 다음 Editor > Pin > Top Space to Superview최상위 메뉴에서 선택 하면됩니다.


이것은 XCode 7에서 구식입니다. 대신 @PaulGurov의 답변을 참조하십시오.


TL; DR : Alt키보드 키를 눌러 여백을 제한 할 수 있습니다 .


고정하려는 뷰가 고정하려는 뷰의 직접 하위 뷰가 아닌 경우 제안 된 방법이 실제로 유효하지 않다는 것을 추가 할 수도 있습니다. 뷰 계층 구조가 다음과 같다고 가정하면 이미지 뷰 ( Parallax Image View이 경우)를 뷰 컨트롤러의 뷰 (이 경우)에 고정하려고합니다 View.

여기에 이미지 설명을 입력하십시오

이렇게하려면 당신은 그냥 Control+ Drag로부터 Parallax Image View받는 View. 그러면 상단 레이아웃 가이드 Vertical Spacing to Top Layout Guide에 고정 할 수있는 기본 선택 사항이 나타납니다 Parallax Image View.

여기에 이미지 설명을 입력하십시오

원하는 것은 뷰의 상단 (여백)에 고정하는 것입니다. 그러기 위해서는를 눌러 다른 구속 조건 세트로 전환해야합니다Alt

여기에 이미지 설명을 입력하십시오


I had a whole bunch of constraints already there and I just wanted to change them rather than break them. Turns out if you double click on the constraint to edit, then click on the item that has the ".Margin", you can just turn off the "Relative to Margin" by selecting that item.

여백을 기준으로 상대를 선택하십시오


Dan's answer works. I just wanted to state that if you set your view in storyBoard at y < 20, and configure constraints through the pin panel, it will set top to superview:

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


If the height of the view is set to 0 by accident, Vertical Space to Top Layout Guide will NOT appear. Vertical Space to Bottom Layout Guide will appear, however, which must have made sense to someone inside Apple circa 2004.


None of the above answers worked for me, instead I have to do a hack to set my subview's top with superview's top instead with Top layout guide.

  • 먼저 슈퍼 뷰로 서브 뷰 센터를 세로로 설정합니다.
  • 그런 다음 슈퍼 뷰뿐만 아니라 서브 뷰에 대한 중심 Y 구속 조건을 상단 구속 조건으로 변경하십시오.

당신은 지금 가도 좋습니다.

참고 URL : https://stackoverflow.com/questions/28766210/autolayout-add-constraint-to-superview-and-not-top-layout-guide

반응형