Mobile/iOS

[iOS][Objective-C] Label 높이 구하기

out of coding 2016. 12. 17. 22:59

AutoLayout을 사용하면서, 정확한 높이를 알 필요가 없어지긴 하였는데.

간혹 작업을 하다보면 안 맞는 부분들이 발생하게 된다.


이러할 경우에, 높이 계산해서 처리해 주어야 한다.


label.text = @"엄청나게 길다"


CGSize constraint = CGSizeMake(label.frame.size.width, CGFLOAT_MAX);

CGSize size;


NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];

CGSize boundingBox = [label.text boundingRectWithSize:constraint

   options:NSStringDrawingUsesLineFragmentOrigin

      attributes:@{NSFontAttributeName:label.font}

     context:context].size;


size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));


self.constraintContentHeight.constant = size.height;


한글의 특성인것인지... 잘 안될때가 있는데... 희한함.