2012-12-10 8 views
4

UILabel (파란색)이 포함 된 containerView (회색)을 포함하는보기가 있습니다.텍스트가 바뀔 때 UILabel이 축소됩니다.

enter image description here

은 내가 containerView 항상 양쪽에있는 라벨에 비해 8 개 픽셀 큰되도록 레이아웃 제약 조건을 가지고 있고, containerView의 테두리를 잘 고정/상단/왼쪽. 컨테이너 방향은 장치 방향이 변경 될 때 적절히 늘어납니다.

레이블의 numberOfLines 속성은 0으로 설정됩니다. 코드의 텍스트를 코드에 설정하고 있습니다. 예상대로 텍스트를 수용하기 위해 레이블의 높이가 커집니다.

다음과 같은 문제가 있습니다. 장치를 가로 방향으로 회전하면 레이블의 너비가 화면의 사용 가능한 너비에 맞게 증가하고 텍스트가 2 줄에 맞습니다. 그러나 UILabel은 텍스트 주위에 꼭 맞도록 높이를 줄이지 않습니다. 레이블의 텍스트 위아래 공간을 확인하십시오.

enter image description here

그래서 장치가 텍스트 주위에 잘 맞도록 회전과 라벨의 높이를 축소 할 수있는 방법?

viewWill/DidLayoutSubviews 메서드에서 [myLabel sizeToFit]을 호출 해 보았습니다. 그러나 이는 눈에 띄는 효과가 없습니다.

답변

0

확인 라벨이 고정 된 높이를 지정하는 제약 조건이있는 경우 : NSLog(@"%@", label.constraints);

0

1 단계 : 서브 클래스 UILabel의를.

2 단계 : 레이블의 사용자 지정 클래스를 레이블 하위 클래스로 설정하십시오.

3 단계 : 사용자 지정 클래스에서 -layoutSubviews을 재정의하십시오.

4 단계 : 오버라이드 (override) 된 메소드에서, 이것은 나를 위해 일한 [self sizeToFit];

를 호출합니다.

관련 문제