2013-07-04 2 views
3

비어 나는 Label X의 바닥 Label X+1의 상단을 연결하는 제약이자동 레이아웃 : 자동 업데이트 제약 몇 가지보기

_______________________________ 
|  |       | 
| Label 0      | 
| ^      | 
| Label 1      | 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 

^ 스탠드와 같은 볼 수 있습니다. Label 0은 고정 상수가있는 superview의 상단에 구속됩니다.

내가 달성하려고하는 것 : 일부 Label X이 비어 있으면 Label X+1이 필요합니다.

_______________________________ 
|  |       | 
| Label 0 (empty)    | 
| ^      | 
| Label 1      | 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 
       | 
       | The new layout 
       \/
_______________________________ 
|  |       | 
| Label 1      | (here it is also Label 0 but is empty) 
| ^      | 
| Label 2      | 
| ^      | 
| Label N      | 
|_______________________________| 

자동 레이아웃에서는 이것이 가능합니까? 아니면 프로그래밍 방식으로 제약 조건을 수동으로 업데이트해야합니까?

면책 조항 :이 질문에 아주 기본적인 변명이 들리면 제발, 저는 스프링과 스트럿에서 옮겨 가고 있습니다. 지금은 매우 수수께끼입니다.

+0

정말이 질문을 잘 작성했습니다. :) +1. –

답변

1

콘텐츠가 표시 될 때 변경해야합니까? 이 시도하지 않으면 : viewWillAppear 메서드에서 업데이트를 수행 할 수 있습니다. 각 레이블의 경우,

[firstLabel setNumberOfLines:0]; 
[firstLabel setText:newProductTitleText]; 
[firstLabel sizeToFit]; 

0으로 라인의 수를 설정 전화가 필요로 레이블이 동적으로 많은 라인을 사용할 수 있습니다. 이것이 실제로 0 행이되어야하는 빈 레이블 인 경우. 이렇게하면 프레임이 업데이트되고 autolayout이 나머지를 처리해야합니다.

+0

레이블의 높이는 0이지만 레이블의 위쪽 여백은 그대로 유지됩니다. –