질문사항
전체 프레임을 Auto Layout으로 설정하면 하단 버튼 고정 등 `Fixed position when scrolling` 속성이 비활성화됩니다. Auto Layout 프레임 내에서 `Fixed` 속성을 사용해야 할 경우 해결할 수 있는 방법이 있을까요?
답변
네, Auto Layout이 적용된 프레임의 직접적인 자식 요소에는 `Fixed position when scrolling` 속성을 적용할 수 없습니다. 이는 Auto Layout이 자식 요소의 위치를 자동으로 관리하기 때문입니다.
이 문제를 해결하고 하단 버튼 등을 고정하는 방법은 다음과 같습니다:
Fixed 요소를 Auto Layout 프레임의 상위(부모)에 배치: 하단 버튼과 같은 고정 요소를 Auto Layout이 적용된 메인 프레임의 바깥쪽에 배치하고, 이 요소를 `Fixed position when scrolling`으로 설정합니다. 이때, Auto Layout 프레임의 `Padding`이나 `Spacing`을 조정하여 고정 요소와 겹치지 않도록 공간을 확보해야 합니다. 가장 일반적인 방법은, 고정될 요소(예: 하단 버튼)를 별도의 프레임으로 만들고, 이 프레임을 메인 스크롤 프레임과 함께 페이지의 최상위 레벨에 배치한 후 `Fixed position when scrolling`을 적용하는 것입니다.Overlay 사용 (Prototyping): 프로토타이핑 시, 하단 버튼을 별도의 컴포넌트로 만들고, 인터랙션 설정에서 `Open overlay` 옵션을 사용하여 이 버튼 컴포넌트를 `Fixed position`으로 화면 하단에 고정되도록 설정할 수 있습니다. 이 방법은 디자인 모드에서는 `Fixed`처럼 보이지 않지만, 프로토타입 실행 시에는 고정된 것처럼 동작합니다.Auto Layout 내부에 Fixed 요소를 포함하는 프레임 사용 (고급): 매우 드물고 복잡한 경우에만 고려할 수 있는 방법으로, Auto Layout 프레임 내부에 `Absolute position`으로 설정된 요소를 포함하는 프레임을 만들고, 이 요소를 `Fixed`로 설정하는 편법이 있을 수 있습니다. 하지만 이는 Auto Layout의 이점을 상쇄하고 관리가 매우 어려워지므로 권장하지 않습니다.가장 권장되는 방법은 1번, 즉 고정 요소를 Auto Layout 프레임의 상위 레벨에 배치하고 `Fixed position when scrolling`을 적용하는 것입니다.