2017-04-16 11 views
0

세 개의 컨트롤이있는 가로 스택이 있습니다.컨트롤을 스택 내에서 실제 크기로 채우는 방법

처음 두 개 (아래 그림에서 녹색과 주황색)는 IB_DESIGNABLEUIView 클래스를 기반으로합니다. 이러한 컨트롤 내에서 상대적으로 너비에 해당하는 제한은 width입니다. 세 번째보기는 일반 UIView입니다.

enter image description here

이러한 컨트롤은 여러 개의 버튼이있다. 버튼은 구성 값을 나타냅니다. 이 버튼은 사용자가 여러 항목 사이에서 특정 구성을 선택할 수 있도록하는 데 사용되는 라디오 단추입니다. 이 단추는 여러 번 사용되기 때문에 특정 구성에는 선택할 수있는 옵션이 4 개만있을 수 있으므로 3 개의 단추를 숨기고 다른 경우에는 2 개를 숨겨야합니다.

IB_DESIGNABLE 클래스는 XIB을 기준으로합니다. 버튼은이 XIB 안에있는 수평 스택 안에 있습니다.

이것이 문제입니다. 녹색 버튼에 2 개의 버튼을 숨겨야한다고 가정합니다. 양쪽 모두 가로형 스택 내부에 있고 그 버튼도 가로형 스택 안에 있기 때문에 하나 이상의 버튼을 숨길 때 컨트롤의 폭을 줄이기를 원합니다. 이 경우

는 초록색의 2 개 버튼을 숨겨 나는 모든 일이

enter image description here

처럼 렌더링 할 그러나 그것은 아니다. 그것은

enter image description here

주와 같은 렌더링 : 컨트롤 계약은 내가 남은 공간을 차지하기 위해 세 번째보기를 필요로 할 때. 저는 스택을 사용하여 할 수 없었기 때문에 컨트롤을 왼쪽으로 강제로 이동했습니다. 항상 모든 것을 확장하려고했습니다.

이러한 3 개의보기에는 제한이 없습니다. XIB 내부

버튼 폭 가로 제약을가 있지만 20 스택 간격, 1000

채우기 수평 기입하는 제어를 보유 스택 대신 (750)의 우선 순위를 사용하고 있는지 xib 안에있는 버튼이 수평, 채우기, 채우기, 간격 0을 보유하고 있습니다.

아이디어가 있으십니까?

답변

1

어떻게 버튼을 숨 깁니까? isHidden = true일까요? 그런 다음 그 이유가 있습니다. Autolayout은 숨겨진 상태를 무시합니다. 버튼이 아직 있습니다. 단추의 제한 조건을 비활성화하거나 변경해야합니다. 예 : 단추의 너비 제약을 0으로 설정하십시오.

+0

브리튼! 감사!!!!!!! – SpaceDog