2013-10-17 9 views
1

UITextView과 함께 뷰를 포함하는 파일이 서브 뷰로 포함되어 있습니다. 이 textView는 내용에 따라 크기가 조정되어야하므로 30px입니다.UITextView는 자동 레이아웃으로 크기를 변경할 수 없습니다.

[_textView setText:[contents objectForKey:@"body"]]; 
[_textView sizeToFit]; 

CGSize txtSize = _textView.contentSize; 
txtSize.height = _textView.frame.size.height; 
_textView.contentSite = txtSize; 

CGRect superFrame = _textView.superView.frame; 
superFrame += _textView.contentSize.height; 
_textView.superView.frame = superFrame; 

는 수퍼 실제로 제대로 크기를 조정 않습니다

그래서 나는 텍스트 프로그래밍, -sizeToFit를 호출하고 텍스트 뷰와 슈퍼 뷰의 프레임을 다시 설정합니다. 또한 텍스트보기 프레임과 콘텐츠 크기를 로깅 할 때 콘솔에서 정상적으로 표시됩니다 (약 1200px).

그러나 textView 은 화면에서 여전히 높은 30px 높이 인입니다. -setNeedsLayout에게 전화해도 트릭을하지 못했습니다.

여기에 어떤 문제가있을 수 있습니까?

답변

2

이것은 며칠 전에 만난 버그입니다. UITextView는 스크롤이 비활성화 된 경우 높이에 관계없이 텍스트의 일부를 잘라내는 것처럼 보입니다.

특정 상황에서 작동하는 솔루션입니다 :

[_textView setScrollEnabled:YES]; 
[_textView setText:text]; 
[_textView setScrollEnabled:NO]; 

나는 애플이 버그를보고,하지만 난 당신이 동일 할 좋습니다.

+0

불행히도 이것은 내가 찾고있는 것이 아닙니다. 콘텐츠에 따라 textView의 실제 크기를 조정하고 싶습니다. 기사를 표시하는보기가 있습니다. 그리고 이것은 더 길고 길어질 것입니다. 그래서 textView에서 스크롤하지 않습니다.하지만 superview입니다. –

+0

예, 정확히 같은 문제입니다. 나는 슈퍼 뷰를 스크롤하기를 원했고, 텍스트 뷰에서 비활성화 된 스크롤 때문에. 마지막으로 사용한 솔루션은 이미 텍스트보기의 크기를 조정할 때부터 스크롤을 사용하도록 설정 한 상태입니다. –