我在(静态)UITableviewCell中有一个UITextView。 textView为空。我想要的是textView动态调整大小。意思是当用户在里面输入一些文本时,我希望textView的大小适合其内容。
接下来,我希望单元格动态调整大小为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,因为我有自动布局,当我添加新行时,没有任何反应?
答案 0 :(得分:-1)
您需要计算UITableView的单元格高度。哪个需要基于UitextViews高度。