uitableviewcell- 왼쪽 대신 오른쪽 uilabel 잘리는 방법?
-
19-09-2019 - |
문제
Apple Docs가 다음과 같이 정의하는 uitableviewcellstylevalue1을 사용하여 uitableviewcell을 만들었습니다.
왼쪽 정렬 및 검은 색 텍스트가있는 셀의 왼쪽에 레이블이있는 셀 스타일; 오른쪽에는 파란색 텍스트가 작고 오른쪽으로 정렬 된 레이블이 있습니다. 설정 애플리케이션은이 스타일의 셀을 사용합니다.
왼쪽에 짧은 텍스트를 표시하기 위해 셀 텍스트를 설정하고 오른쪽에 긴 텍스트를 표시하려고합니다.
내 문제는 왼쪽 uilabel이 올바른 대신 잘린다는 것입니다.
URL을 더 길게 만들면 두 레이블이 잘립니다.
사용자 정의 UitableViewCell을 사용하지 않고 왼쪽 대신 오른쪽 Uilabel 절단을 만드는 방법이 있습니까? 커스텀 UitableViewCell을 만드는 방법을 알고 있지만 과잉처럼 보입니까?
uilinebreakmode를 Uilabel 내에서 자르는 위치를 변경하도록 설정할 수 있지만 DetailTextLabel이 너비를 조정하여 TextLabel이 표시되도록하는 방법을 볼 수 없습니다.
[[lCell textLabel] setText:@"URL"];
[[lCell detailTextLabel] setText:@"http://www.mylongurl.com/subdirectory/etc"];
[[lCell detailTextLabel] setLineBreakMode:UILineBreakModeMiddleTruncation];
해결책
몇 가지 옵션이 있습니다.
아마도 당신이 요구하는 것과 가장 가까운 정신은 아마도 당신의 라벨 프레임을 가지고있는 것입니다. UITableViewDelegate
'에스 tableView:willDisplayCell:forRowAtIndexPath:
. (셀 레이아웃 수정을 수행합니다 UITableViewDataSource
'에스 tableView:cellForRowAtIndexPath:
이후로 날지 않을 것입니다 UITableViewCells
나중에 자신의 내부 레이아웃 작업을 모두 수행하십시오 tableView:cellForRowAtIndexPath:
.) 당신이 사용할 수있는 NSString
S-sizeWithFont:
귀하의 레이아웃 요구 사항을 파악하는 데 도움이됩니다 textLabel
.
언급했듯이 서브 클래싱과 같은 다른 접근 방식을 취할 수도 있습니다. UITableViewCell
또는 설정 cell.textLabel.adjustsFontSizeToFitWidth = YES
.
다른 팁
최상의 솔루션은 uitableview 셀의 서브 클래스를 만들고 여기에있는 것처럼 레이블로 사용자 정의를 설정하는 것입니다. init
. 당신은 아마도 무시하고 싶을 것입니다 layoutSubviews
왼쪽 레이블이 더 넓어 지려면 레이블을 크기를 조정하십시오.
- (void)layoutSubviews {
[super layoutSubviews];
self.textLabel.frame = CGRectMake(0.0, 0.0, 100.0, self.frame.size.height);
self.detailTextLabel.frame = CGRectMake(0.0, 0.0, 220.0, self.frame.size.height);
}
분명히 그것들은 임의의 값입니다. 당신은 당신의 요구를 충족시키기 위해 다양한 크기로 놀고 싶을 것입니다.