문제

Apple Docs가 다음과 같이 정의하는 uitableviewcellstylevalue1을 사용하여 uitableviewcell을 만들었습니다.

왼쪽 정렬 및 검은 색 텍스트가있는 셀의 왼쪽에 레이블이있는 셀 스타일; 오른쪽에는 파란색 텍스트가 작고 오른쪽으로 정렬 된 레이블이 있습니다. 설정 애플리케이션은이 스타일의 셀을 사용합니다.

왼쪽에 짧은 텍스트를 표시하기 위해 셀 텍스트를 설정하고 오른쪽에 긴 텍스트를 표시하려고합니다.

URL http://www.mylongurl.com/subdirectory/etc

내 문제는 왼쪽 uilabel이 올바른 대신 잘린다는 것입니다.

유... http://www.mylongurl.com/subdirectory/etc

URL을 더 길게 만들면 두 레이블이 잘립니다.

유... http : //www.mylongurl.com...subdirectory/etc

사용자 정의 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:.) 당신이 사용할 수있는 NSStringS-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);
}

분명히 그것들은 임의의 값입니다. 당신은 당신의 요구를 충족시키기 위해 다양한 크기로 놀고 싶을 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top