2013-11-22 2 views
3

두 개의 뷰가 동적 높이가 될 수 있습니다. 내용에 따라 view1 또는 view2가 가장 높습니다.자동 레이아웃 동적 뷰가 세로로 정렬 된 두 개의 뷰

가장 높은 시야는 view3까지의 거리를 결정해야합니다.

내 현재 구현에서 view1과 view2에는 view3에 대한 x 픽셀에 대한 제약이 있습니다. 그러나 문제는

+1

가장 명확하게 말하면 가장 키가 크다는 것을 의미합니까 (보기 1과보기 2의 높이가 독립적으로 다를 수 있음)? 그리고 가장 높은 시야 (1 또는 2)에서 시야 3까지의 거리가 일정해야합니까? –

+0

예 view1 및 view2 높이는 독립적으로 달라질 수 있습니다. 가장 높은 시야 (1 또는 2)에서의 높이는 view3에 대해 일정해야합니다. – Architect

답변

8

이 시도 (모든 콘텐츠는 상단 정렬되지 않습니다) 같은 높이가 될 것입니다 후 항상 뷰 1와 뷰 2입니다. 보기 1과 2가 모두 수퍼 뷰의 상단과 측면에 대해 약간의 제한을가집니다 (또는 고정 된 너비, 가로 방향으로보기를 고정하는 데 필요한 모든 것이어야 함). 밑면보기까지의 거리가 30이라고 가정 해 보겠습니다.보기 1에 우선 순위가 200 인 경우 30의 3을, 우선 순위가 1000 (기본값) 인> 30 인보기로보기 1을 지정합니다. View 2는 1000 이상의 우선 순위를 가진> = 30의 3을보기 위해 하나의 제약 조건 만 있으면됩니다.

낮음 우선 순위 제약 조건 (200)은 처음에는보기 3의 위치를 ​​수정하지만보기 2가 확장되면보기 3이 아래로 이동하고보기 1의 기본 내용 중개 우선 순위 텍스트 크기를 기반으로하지 않아도 높이를 확장하지 않습니다.

+0

감사합니다. 나는 당신의 대답의 방향으로 가고 있었지만,보기 1과 3 사이에 두 개의 수직 제약 조건을 사용하지 않았습니다. – Architect

+0

설명하는 것에 대한 좋은 문서를 찾을 수 없습니다. 여기서 추천하는 제약 조건의 코드 샘플을 제공 할 수 있습니까? 당신이이 질문에 답한 지 얼마나 됐는지 알고 있습니다. 그러나 비슷한 상황에 처해 있으며 좋은 해결책을 찾을 수 없습니다. – Matt

+1

@Matt, 서면 자료는 자세히 다루지 않으므로 자세한 내용은 자동 레이아웃과 관련하여 WWDC 2012 비디오 (3 참조)를 살펴 봐야합니다. 이 대답으로 문제를 해결할 수있는 세부 정보가 충분하지 않으면 직접 질문해야합니다. 더 많은 정보가 없으면 어떤 코드를 보여 드릴지 모르겠습니다. – rdelmar

-1
float yPos = MAX(view1.frame.size.height,view2.frame.size.height); 

view3.frame.origin.y = view1.frame.origin.y + maxHeight; 
+0

자동 레이아웃을 사용할 때 프레임을 변경할 수 없습니다. 콘텐츠에 따라 사용자 지정 제약 조건을 만드는 방법에 대해 생각해 보았습니다. – Architect

관련 문제