2014-06-18 1 views
0

UILabel의 높이가 동적으로 변경 될 때, 즉 sizeToFit이 활성화 된 경우 UILabel의 높이를 찾으려고합니다. UILabel의 높이를 알아내는 방법은 무엇입니까? 물론 sizeToFit을 사용하면 값 frame.size.height이 분명히 잘못되었습니다.맞는 크기 인 UILabel 높이 알아 내기

감사합니다.

+2

이것을 확인하십시오 : http://stackoverflow.com/a/20996866/1280373 –

+0

감사합니다 nithin. . . – thndrkiss

답변

1

에서 잘 작동 모든 것은 ..

-(CGSize)lblSize:(NSString *)content lblFont:(UIFont *)contectLblFont width:(int)Width 
{ 
    CGSize maximumLabelSize; 
    maximumLabelSize = CGSizeMake(Width,9999); 
    NSAttributedString *attributedText = 
    [[NSAttributedString alloc] 
    initWithString:content 
    attributes:@ 
    { 
    NSFontAttributeName:contectLblFont 
    }]; 
    CGRect rect = [attributedText boundingRectWithSize:(CGSize){maximumLabelSize.width, CGFLOAT_MAX} 
               options:NSStringDrawingUsesLineFragmentOrigin 
               context:nil]; 
    CGSize size = rect.size; 
    return size; 
} 

을 도움 당신이 될 수도를 시도하고 테이블 뷰 위임 내부에서 사용

CGSize expectedLabelSize=[self lblSize:[NSString stringWithFormat:@"%@",[[loadMoreArray objectAtIndex:indexPath.row]valueForKey:@"text"]] lblFont:cell.self.lbldetail.font width:310]; 

    cell.self.lbldetail.frame=CGRectMake(5,cell.imgProfile.frame.size.height+cell.imgProfile.frame.origin.y+2, 300,expectedLabelSize.height+10); 
1

나 또한 sizeToFit을 사용하고 있지만 올바른 결과를 얻으려면이 방법이 도움이 될 수 있습니다. 시도해야합니다.

UILabel *detailsLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,50,320,30)]; 
detailsLabel.text = [textDic valueForKey:@"Text"]; 
detailsLabel.textColor = [UIColor grayColor]; 
detailsLabel.numberOfLines = 0; 
[detailsLabel sizeToFit]; 
[scrollViewObj addSubview:detailsLabel]; 
NSLog(@"Label Height %f", detailsLabel.frame.size.height); 

내 현재 프로젝트 .Thanks 건배 ..

+0

긴 텍스트를 시도해보십시오 3 라이너 텍스트 수 있습니다. 감사합니다 – thndrkiss

+0

안녕하세요 형제, 내 애플 리케이션이 블로그 기반 애플 리케이션이기 때문에 나는 너무 긴 텍스트를 사용하고 있습니다. 하지만 작동하는 모든 게 괜찮습니다 .. –

+0

Plz 내 코드를 시도하십시오 ... 전체 도움이 될 수 있습니다 .. 때문에 여기에 완전히 괜찮아요 .. –