예, st3fan 이 맞습니다. UIScrollView의 contentSize 속성을 설정해야합니다. 그러나 이러한 목적으로 자동 레이아웃을 끄면 안됩니다. 코드없이 IB에서만 자동 레이아웃으로 UIScrollView의 contentSize를 쉽게 설정할 수 있습니다.
UIScrollView의 autolayout contentSize를 사용하는 경우 직접 설정되지 않은 경우 UIScrollView의 모든 하위보기에 대한 제약 조건에 따라 계산된다는 점을 이해하는 것이 중요합니다. 그리고 필요한 것은 양방향의 하위보기에 대한 적절한 제약 조건을 제공하는 것입니다.
예를 들어 하위 뷰가 하나만있는 경우 상단 및 하단에서 슈퍼 뷰 (예 : scrollView)까지 높이와 공간을 설정할 수 있습니다. contentSize.height는 합계로 계산됩니다.
Vertical Space (aSubview.top to Superview.top) + aSubview.height + Vertical Space (aSubview.top to Superview.top)
contentSize.width는 수평 제약 조건에서 유사하게 계산됩니다.
contentSize를 제대로 계산할 제약이 너무 적 으면 View Controller Scene 항목 근처에 작은 빨간색 버튼이 표시되어 레이아웃 모호성을 알려줍니다.
하위보기가 많으면 Danyal Aytekin 답변 에서와 같이 상단에서 상단으로의 하위보기, 하위보기 사이의 높이 및 공간과 하단에서 하단으로의 공간 등 제약의 "체인"일 수 있습니다 .
그러나 실제로 대부분의 경우 필요한 크기의 빈 뷰를 추가하고 scrollView의 상단, 왼쪽, 하단, 오른쪽에 공백을 0으로 설정하는 것이 더 편리합니다.
합니다.이보기를 "콘텐츠보기"로 사용할 수 있습니다. 즉, 다른 모든 하위보기를 배치합니다. 이미 많은 하위보기가 있고이를 이동하고 레이아웃을 다시 설정하지 않으려는 경우이 보조보기를 기존 하위보기에 추가하고 숨길 수 있습니다.
scrollView를 스크롤 가능하게하려면 계산 된 contentSize가 scrollView 크기보다 커야합니다.