2015-01-21 5 views
2

의 실제 높이를 얻기 :나는 NSAttributedString은이 UITextView로 전달되는 가지고 UITextView

NSAttributedString *str = @"A really long string ... that continues for awhile"; 

문자열의 길이는 임의이며, 내가 UITextView로를 통과하고 싶은가를.

myTextView.attributedText = str; 

나는 UITextView의 너비가 300이되어야하지만 어떻게 그 헤이 트를 발견 할 수 있습니까?

[myTextView sizeToFit]; 

을 그리고 myTextView.bounds.size.height에서 높이를 검색 : 내가 틀리지 않는 경우

답변

2

당신은이 작업을 수행 할 수 있습니다. 참고 : UITextView은 가장자리에 약간의 패딩을 추가하므로 높이에서 빼기를 원할 수 있습니다. 물론

UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 300.f, yourMaxHeight)]; 
label.attributedText = myTextView.attributedText; 
label.numberOfLines = INFINITY; 
[label sizeToFit]; 

CGFloat height = label.bounds.size.height; 

이것은 UITextView 패딩을 포함하지 않는

: 여기보다 더 잘못 생각하는 경우

덜 깨끗하지만 작동 대안입니다.

+0

또한 'sizeToFit'는 모든 UIControl (UIButton','UIImageView' 포함)에 대해 구현됩니다. 프레임 (원점 제외)을 내용에 맞게 자동으로 조정합니다. – elslooo

+0

whatMaxHeight는 무엇입니까 – cdub

+0

실제로 UILabel 코드가 작동하지만 패딩이없는 UITextView가 필요합니다. – cdub