크기 - ios 동적 뷰
텍스트 설정 후 자동 레이아웃으로 UITextView 동적 높이 가져 오기 (8)
이 작동합니다.
NSLog(@"text before: %.2f",self.myText.frame.size.height);
[self.myText setText:self.string];
[self.myText layoutIfNeeded]; // <--- Add this
NSLog(@"text after: %.2f",self.myText.frame.size.height);
내 Github의 구현 예는 다음과 같습니다. https://github.com/guillaume-algis/SO-27060338
내가 UITextView 인터페이스 빌더에 의해 설정된 자동 레이아웃 스크롤 및 텍스트 증가 또는 아무런 문제가 동적으로 감소하지만 텍스트를 설정 한 후 새로운 UITextView 높이 알고 싶습니다,이 일을하려고 해요 :
NSLog(@"text before: %.2f",self.myText.frame.size.height);
[self.myText setText:self.string];
NSLog(@"text after: %.2f",self.myText.frame.size.height);
이것이 결과입니다.
text before: 47.50
text after: 47.50
내가 그것을 실행할 때보기에서 텍스트가 증가하지만 크기가 동일합니다. 어떻게 텍스트를 설정 한 후에 실제 높이를 얻을 수 있습니까?
- (void)textViewDidChange:(UITextView *)textView
{
UIFont *myFont = [UIFont systemFontOfSize:14];
CGSize size = [self sizeOfText:textView.text widthOfTextView:TextviewWidth withFont:myFont];
NSLog(@"Height : %f", size.height);
}
-(CGSize)sizeOfText:(NSString *)textToMesure widthOfTextView:(CGFloat)width withFont:(UIFont*)font
{
CGSize ts = [textToMesure sizeWithFont:font constrainedToSize:CGSizeMake(width-20.0, FLT_MAX) lineBreakMode:NSLineBreakByWordWrapping];
return ts;
}
동적 UITextView 높이 링크를 AutoLayout 다음에 주어진 코드를 사용하고 나를 위해 일한 :)
textview를 선택하고 "Scrolling enabled"를 선택 해제하십시오.
톱 메뉴에서 텍스트보기 선택 "편집기> 내용에 맞게 크기"
그 아래에있는보기를 선택하고 원하는 여백까지 텍스트 뷰 맨 아래 에있는 구속 조건 을 설정 한 다음 "Size Inspector"로 이동하여 방금 추가 한 구속 조건을 더블 클릭하거나 편집하고 "관계"를 "크거나 같음"으로 설정하십시오 "
스위프트 3.0
textView.isScrollEnabled = false
이를 통해 AutoLayout이 작업을 수행 할 수 있습니다.
높이 1을 제외한 모든 제약 조건을 설정하고 textView
의 scrollEnabled
를 NO
설정 scrollEnabled
됩니다. 마지막 부분은 속임수입니다. 텍스트보기는 텍스트 값에 따라 자동으로 크기가 조정됩니다.
텍스트 호출을 변경 한 직후
[self.myText sizeToFit];