2013-07-22 1 views
2

Storyboard에 이있는 사용자 정의 UITableViewCell이 있습니다. 이 UILabel의 텍스트를 동적으로 설정하고 이후에 UILabel의 너비를 조정해야합니다.셀의 크기가 UILabel 인 동적 너비

내가 어떻게됩니까

> MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
> author = @"Some dynamic text"; 
> cell.authorLabel.text = author; 
> [cell.authorLabel sizeToFit]; 

으로 노력하고 있습니다 : 먼저 UILabel 렌더링 상기는 따라서, storyboard에 설정된 폭을 유지하거나 텍스트가 잘립니다 또는 너무 많은 공간이 뒤에있다 .

스크롤 한 후에는 셀이 대기열에서 제외되고 sizeToFit 메서드가 제대로 적용되지만 두 번째 UILabel이 이미 잘못된 위치에 배치되어 있기 때문에 너무 늦습니다. (낮은 평판 제한으로 인해 사진을 게시 할 수 없습니다)

아이디어가 있으십니까?

+0

을 (http://stackoverflow.com/questions/1947970/dynamic-calculation-of-uilabel-width-in-uitableviewcell?rq=1) –

답변

1

사용 동적 높이와 너비를 가져 오는이 하나

CGSize sizeDynamic = [str sizeWithFont:[UIFont fontWithName:@"Arial-BoldMT" size:14] constrainedToSize:CGSizeMake(CGFLOAT_MAX,CGFLOAT_MAX) lineBreakMode:NSLineBreakByWordWrapping]; 

당신이 얻을 수있는,

sizeDynamic.height and sizeDynamic.width values 
+0

이것은 내용에 기반하여'UILabel'의 크기를 적절하게 조절하기 위해 작동하지만 side-by-side 레이블이 이동되지 않아서 수평 간격 제약 조건과 최종 결과를 따르지 않는 문제가 있습니다 겹치는 두 개의 텍스트입니다. 첫 번째 레이블의 새로운 너비를 기준으로 두 번째 레이블의 새 위치를 계산해야합니까? N.B. 이 'sizeWithFont'가 작동하고 같은 지점에서'sizeToFit'가 작동하지 않으면'sizeToFit' 메소드에 대해 무엇을 놓치고 있습니까? – stilllife

0

어쩌면 당신이 그 같은 것을 의미 :

MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
author = @"Some dynamic text"; 
cell.authorLabel.text = author; <-- excluded in your code 
[cell.authorLabel sizeToFit]; 

이 아무튼이 ' 이런 일을 시도해보십시오.

서브있는 UITableViewCell 아래 재기록 방법 :이 질문] 참조

- (void)setSelected:(BOOL) selected 
{ 
    [super setSelected:selected]; 
    [self.authorLabel sizeToFit]; 
} 
+0

올바르게 추가 한 행을 잊어 버려서 죄송합니다. 어쨌든 이것은 여전히 ​​문제를 해결하지 못합니다. – stilllife

관련 문제