【发布时间】:2015-01-11 03:08:40
【问题描述】:
我在情节提要的 UITableViewCell 中有一个 UITextView。然后我在 UITextView 的所有 4 个边上添加了一个约束。
在下面的代码中,我尝试让 textView 在用户输入文本时动态变化。我很确定这很成功。但问题是细胞不是。 Bellow是我尝试过的代码,但没有成功。
-(void)viewDidLoad
{
tableView.rowHeight = UITableViewAutomaticDimension;
tableView.estimatedRowHeight = 44;
}
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
if (textView == myTextView)
{
[self textViewFitToContent:myTextView];
[self.tableView beginUpdates];
[self.tableView reloadRowsAtIndexPaths:@[[NSIndexPath indexPathForItem:1 inSection:0]] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView endUpdates];
}
return YES;
}
- (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
{
return myTextView.frame.size.height + 40;
}
我是初学者,所以请不要对我太苛刻。
谢谢
【问题讨论】:
-
当只有一个单元格应该改变高度时,所有单元格都会改变高度。
标签: ios objective-c uitableview uitextview