UITextView가 (정적 인) UITableviewCell에 있습니다. textView가 비어 있습니다. 내가 원하는 건 textView 동적으로 크기를 조정하는 것입니다. 사용자가 텍스트를 입력 할 때 textView의 내용을 크기로 지정해야합니다.내용에 맞게 UITextVIew 및 UITableViewCell 크기 조정
다음으로 셀의 크기를 textview의 내용에 맞게 동적으로 조정하고 싶습니다.
textView shouldChangeTextInRange에서 textViewFitToContent를 호출했습니다.
내 문제는 효과가 없습니다. 내가 textViewFitToContent (uitableview없이) 다른 프로젝트에서 사용하여 시도하고 예상대로 작동했습니다.
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (textView == myTextView)
{
if ([text isEqualToString:@"\n"])
{
[self insertXEveryNewLine:range :textView :@"\n\u2022 "];
return NO;
}
}
return YES;
}
- (BOOL)insertXEveryNewLine:(NSRange)place :(UITextView *)View :(NSString *)something
{
NSRange cursor = NSMakeRange(place.location + 3, 0);
NSMutableString *mutableT = [NSMutableString stringWithString:View.text];
[mutableT insertString:something atIndex:place.location];
[View setText:mutableT];
[View setSelectedRange:cursor];
[self textViewFitToContent:View];
return NO;
}
- (void)textViewFitToContent:(UITextView *)textView
{
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
textView.scrollEnabled = NO;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
UIFont *font = [UIFont systemFontOfSize:14.0f];
NSString *text = txtSymtoms.text;
CGFloat height = [text boundingRectWithSize:CGSizeMake(self.tableView.frame.size.width, 100) options:(NSStringDrawingUsesLineFragmentOrigin|NSStringDrawingUsesFontLeading) attributes:@{NSFontAttributeName: font} context:nil].size.height;
return height + 5;
}
저는 너무 가혹한 사람이 아닙니다.
고맙습니다
업데이트 내가 자동 레이아웃을 가지고 있고, 나는 새로운 라인을 추가 할 때, 아무 일도 발생하지 않기 때문에 나는 heightForRowAtIndexPath을 삭제
?
정적 셀 테스트에는 데이터 소스가 필요합니다 (확실하지 않음). 동적 셀 크기를 동적으로 변경하려면 동적 프로토 타입을 사용해야합니다. – Jing