반응형
uilabel 너비를 동적으로 조정하는 자동 레이아웃
그래서 Storyboard에 두 개의 UILabels가 나란히 있습니다. 두 번째 레이블은 첫 번째 레이블의 오른쪽 가장자리에 맞아야합니다 (후행 제약 조건 1).하지만 최대 너비에 도달하지 않는 한 너비를 콘텐츠 크기와 동일하게 설정하려면 첫 번째 레이블 (왼쪽에있는 레이블)도 필요합니다. . 시각적으로 :
| 레이블 1 텍스트 | | 레이블 두 텍스트 |
그리고 다음과 같은 제약이 필요합니다.
1) 레이블 하나는 최대 크기에 도달하지 않는 한 너비를 조정해야합니다.
2) 레이블 2는 항상 레이블 1의 오른쪽 가장자리에 맞대어 야합니다.
Storyboard에서 어떻게 설정합니까?
- 레이블 사이에 1 포인트 수평 공간 만들기 : Control 키를 누른 상태에서에서
label2
로 드래그하십시오label1
. 팝업에서 수평 간격을 선택하십시오. 제약 조건을 두 번 클릭합니다. 상수를 1로 변경합니다. label1
최대 너비 제공 :을 선택label1
합니다. 상단 메뉴 표시 줄로 이동하여 편집기> 핀> 너비를 선택합니다. 제약 조건을 두 번 클릭합니다. 관계를 <=로 변경하고 상수를 최대 너비로 변경하십시오.- 레이블을 수직으로 정렬 : 두 레이블을 모두 선택합니다. 상단 메뉴 표시 줄로 이동하여 Editor> Align> Vertical Centers를 선택합니다.
- 컨테이너보기에서 레이블이 배치되는 방식을 정의하는 제약 조건을 설정해야합니다. 나는 당신에게 맡깁니다. 나는 고정 된
label1
루트 뷰의 왼쪽 가장자리에서 32 점과 최고의 레이아웃 가이드에서 34 점을. - 위의 제약 조건을 반영하도록 레이블의 프레임을 업데이트합니다. 캔버스의 오른쪽 하단 모서리에있는 메뉴 모음으로 이동합니다. "자동 레이아웃 문제 해결"타이 파이터 버튼을 누릅니다. 팝업에서 "모든 프레임 업데이트…"를 선택합니다.
참고 : label1
의 너비에 콘텐츠 크기를 반영 하도록 제약 조건을 만들 필요가 없었습니다 . 콘텐츠 크기 제한은 자동으로 생성됩니다.
UIlabel 및 UIButton 유연한 너비 설정에 대한 제약 조건은 아래를 참조하십시오.
먼저 아래 코드로 textSize를 얻으십시오.
CGSize textSize = { 230.0, 10000.0 };
CGSize size = [[NSString stringWithFormat:@"%@", yourLabelText]
sizeWithFont:[UIFont systemFontOfSize:10]
constrainedToSize:textSize
lineBreakMode:NSLineBreakByWordWrapping];
그런 다음 다음 내용 크기로 첫 번째 레이블 프레임을 설정하십시오.
UILabel *lblFirst = [[UILabel alloc] initWithFrame:CGRectMake(X, Y, W, size.height)];
lblFirst.lineBreakMode = YES;
lblFirst.lineBreakMode = NSLineBreakByWordWrapping;
lblFirst.numberOfLines =size.height;
lblFirst.backgroundColor = [UIColor clearColor];
[self.view addSubview:lblFirst];
두 번째 레이블 프레임은 다음과 같습니다.
UILabel *lblFirst = [[UILabel alloc]
initWithFrame:CGRectMake(lblFollowerName.frame.size.width + lblFollowerName.frame.origin.x, Y, W, H)];
참고 URL : https://stackoverflow.com/questions/20798514/auto-layout-to-dynamically-size-uilabel-width
반응형
'programing' 카테고리의 다른 글
내 GOPATH와 관련된 파일을 어떻게 열 수 있습니까? (0) | 2020.11.24 |
---|---|
숭고한 텍스트 3 : 드래그 앤 드롭, 이동 및 파일 및 폴더 사본 만들기 (0) | 2020.11.24 |
두 개의 NumPy 배열을 세로로 연결 (0) | 2020.11.24 |
invokedynamic을 사용하여 Java 8 람다가 호출되는 이유는 무엇입니까? (0) | 2020.11.24 |
Swift에서 설정할 배열 줄이기 (0) | 2020.11.24 |