2017-10-24 10 views
0

나는 크리켓 시뮬레이터에서 일하고 있으며 사용자가 팀과 선수 정보를 입력 할 수있는 수많은 텍스트 상자가있는 화면이 있습니다. 팝업 키보드가 화면 하단을 숨기기 때문에 스크롤 할 때 화면이 필요하다는 것을 알게되었습니다.이전에 생성 된 ViewController에 ScrollView를 추가 하시겠습니까?

이전에 복잡한 화면을 스크롤 가능하게 만들 수있는 방법이 있습니까? ScrollView를 작성한 다음 Storyboard에서 내 뷰를 작성하여 처음부터 어떻게 할 것인지 알고 있지만 이전에 작성한 후에 스크롤 할 수있게하는 방법이 있습니까?

감사합니다.

+0

당신은 UIView의로 현재 화면을 만들 수 있습니다 (또는있는 UIViewController로 왼쪽을, 그러나보기는 더 분명하다), 그리고 코드에서 스크롤 뷰의 맨 위에이 뷰를 추가하십시오. Autolayout이 경우 코드에서해야합니다. –

+0

감사합니다. 어떻게 말해 줄 수 있니? 내가 createViewController : UIViewController 있다고 가정합니다. –

+0

@PhilEdge - 현재 화면을 어떻게 배치했는지에 대한 이미지 캡을 표시 할 수 있습니까? 개별 레이블, 텍스트 필드 및 단추 (제약 조건 포함)? 또는 일련의 하위보기? 또는 스택보기에 있습니까? – DonMag

답변

0

Interface Builder (Xcode의 Storyboard 편집기)를 사용하면 쉽게이를 수행 할 수 있습니다. 현재있는 모든 요소를 ​​그대로두고 모든 것을 설정할 때까지 제약 조건에 대해 걱정하지 마십시오. (프로그램 적으로 여기에 설명 된 모든 것을 만들 수도 있지만 UIScrollView를 사용하여 콘텐츠를 스크롤 할 수있게해야합니다. 또 다른 옵션은 UITableView가 될 수 있지만 더 많은 작업이 필요하며 모든 것을 다시 작성해야합니다. 질문. 그냥 완료하고 싶다.)

ViewController에는 기본보기가 있습니다. 개체 라이브러리에서 UIScrollView을보기로 끌어옵니다. ScrollView의 Top Anchor, Trailing Anchor, Bottom AnchorLeading Anchor에 Main View에 대한 제약 조건을 각각 0으로 지정하십시오.

요소를 Scrollview에 추가하는 가장 쉬운 방법은 세로 UIStackView을 사용하는 것입니다. 이를 수행하고 제약 조건 문제를 가져 오지 않으려면 UIView을 컨테이너로 scrollview에 추가해야합니다. 위에서 언급 한 4 개의 앵커 (이번에는 컨테이너의 앵커)에 Scrollview에 0 상수 제한을 지정하십시오. 또한 Main View에 동일한 너비 제약 조건을 부여하십시오.

이제 StackView를 컨테이너에 추가하고 4 개의 앵커도 설정합니다 (이번은 물론 컨테이너로 설정). 이제 요소를 StackView로 드래그 할 수 있습니다. 그래도 UIStackView은 필요하지 않습니다. 모든 요소를 ​​컨테이너에 추가 할 수 있지만 컨테이너에는 높이 및 너비 제약 조건이 필요합니다. 우리는 이미 폭 제한을 설정 했으므로, 요소에 따라 높이 제한을 직접 수행해야합니다. 후자는 UIStackView에 의해 자동으로 관리됩니다.

이제 제약 조건 설정을 시작할 수 있습니다 (높이 제한이 필요하지 않습니다. 스택 높이가 자동으로 높이를 계산하므로). ScrollView는 내용의 높이와 너비가 필요합니다. 그것은 StackView에서 자동으로 높이가됩니다. 장치에서 실행될 때 StackView의 내용이 더 이상 화면에 맞지 않으면 ScrollView는 자동으로 스크롤 할 수있게됩니다. ScrollView는 기본 너비의 너비를 따르므로 너비가 설정된 컨테이너에서 너비를 가져옵니다. 앵커를 설정할 때 Constrain to margins의 확인란이 선택 취소되어 있는지 확인하십시오.

내 긴 설명이 설명하기 위해 도움이 아래의 사진을 희망 :

The Structure of the VC Make sure this is off (red circle)