我在自定义UITextviewCell中有一个UITextView。我希望细胞根据UITextview的内容增长。我已将textview的顶部,底部,右侧,左侧固定到单元格的内容视图中。当我使用文本预填充textview时,它正如预期的那样正常工作。当我用键盘输入文本时,它无法正常工作。在我的自定义单元格内
UITextView * textView = [[UITextView alloc]init];
[textView setTranslatesAutoresizingMaskIntoConstraints:NO];
[textView setBackgroundColor:[UIColor redColor]];
[textView setScrollEnabled:NO];
[textView setDelegate:self];
[self.contentView addSubview:textView];
NSLayoutConstraint *xConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0];
NSLayoutConstraint *yConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier:1.0 constant:0];
NSLayoutConstraint *rightConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeRight multiplier:1.0 constant:0];
NSLayoutConstraint *bottomConstrain = [NSLayoutConstraint constraintWithItem:textView attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0];
[self.contentView addConstraint:xConstrain];
[self.contentView addConstraint:yConstrain];
[self.contentView addConstraint:rightConstrain];
[self.contentView addConstraint:bottomConstrain];
在我的tableview控制器中添加以下行
-(void)viewdidload
{
self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 100.0f ;
}
答案 0 :(得分:0)
你可以在这里做几件事,想到一件事:
•在输入文字时,请跟踪UITextView
的高度,如保持“旧高度”变量和“新高度”变量。要获得“新高度”,您可以使用sizeThatFits
的{{1}}方法设置高度,例如1000(足够大,不会限制您的结果)。
•当新高度与旧高度(小于或大于)不同时,您将重新加载包含您正在处理的UITextView
的单元格。您可以设置UITextView
事件,然后设置[cell setNeedsLayout]
以确保其调整大小。
我想这应该有用,如果没有,请告诉我。