2011-10-22 3 views
0

질문에서 언급 한 바와 같이, 나는 자막 (topic.context)의 길이를 획득하고 특정 의사 결정을 내릴 수를 사용하고자하는 기본적셀의 자막 (detailedTextLabel)의 길이를 가져 오는 방법이 있습니까?

cell.detailTextLabel.text = topic.context; 
NSString *fanLabelText = [NSString stringWithFormat:@"%i fans",topic.num_fans]; 

if (topic.context && ![topic.context isEqual:[NSNull null]] && topic.context.length > 46) 
{ 
    thisFanLabel.frame = CGRectMake(320 - 150, -10, 100, 44); 
} 
else 
{ 
    thisFanLabel.frame = CGRectMake(320 - 150, 0, 100, 44); 
} 

(아래에있는 내 코드 참조), 내가 알고 싶은 팬 레이블이 위쪽으로 이동하도록 조정할 수 있도록 자막이 일정한 길이에 도달하게됩니다 (아래 그림 참조). 현재 팬 레이블에 자막이 겹쳐져 있습니다.이 때 레이블을 위쪽으로 이동할 수 있기를 원합니다.

enter image description here

그래서 무슨 일이 자막의 정확한 길이를 얻을 수있는 가장 좋은 방법은 무엇인가요?

+0

당신이 그렇게했다면 분명히 끔찍할 것입니다. 왜 더 짧은 레이블을 갖고 긴 텍스트를 자르거나 두 줄에 자막 텍스트를 놓는 것이 좋을까요? – jrturton

답변

1

다음과 같은 라인을 사용하여 특정 글꼴로 문자열의 크기를 확인할 수 있습니다 : "sizeOfString"에서

CGSize maxSize = CGSizeMake(9999,9999); 

UILabel *myLabel = cell.detailTextLabel; 
CGSize sizeOfString = [myLabel.text sizeWithFont:myLabel.font 
         constrainedToSize:maxSize 
         lineBreakMode:myLabel.lineBreakMode]; 

당신이 지금 detailLabel의 크기를 가져야한다.

0

NSString-sizeWithFont: 및 관련 방법을 참조하십시오.