2016-11-03 4 views
4

UITableView의 셀 높이를 동적으로 높이기 위해 UITableViewAutomaticDimension을 사용하고 있습니다. UITableviewCell 내부의 레이블에 일반 텍스트를 설정하면 모든 것이 잘 작동합니다.UITableViewAutomaticDimension이 UITableviewCell의 UILabel에서 정확한 높이를 설정하지 않음

레이블에 일반 텍스트와 함께 일반 텍스트를 설정하면 셀 높이에 문제가 발생합니다. 셀 높이가 동적으로 증가하지만 이모티콘 문자로 인해 높이가 잘못되었습니다. UITableview는 이모티콘 아이콘 대신 텍스트로 유니 코드를 고려할 수 있으므로 일반 텍스트 높이 만 반환한다고 생각합니다.

내 경우 레이블의 x 원점 또한 동적입니다.

발생하는 문제에 대한 아래의 스크린 샷을 참조하십시오

,

어떤 제안이?

답변

0

UITableViewAutomaticDimension을 제거하고 주어진 방법으로 레이블의 높이를 동적으로 계산하고 이에 따라 셀 높이를 관리하십시오.

// --- 그것은 작업 //

+(CGFloat)textHeight:(NSString*)text withFont:(UIFont*)font andMaxWidth:(CGFloat)maxWidth 
{ 
    CGFloat maxHeight = 99999; 
    CGSize maximumLabelSize = CGSizeMake(maxWidth,maxHeight); 
    NSDictionary *attributes = @{NSFontAttributeName: font}; 
    CGRect expectedLabelSize = [text boundingRectWithSize:maximumLabelSize options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:attributes context:nil]; 
    return expectedLabelSize.size.height; 
} 
+0

입니다 --- 문자열의 높이를 계산합니다. 감사!! –