使用textview的代理方法:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(UITextViewTextDidChange:) name:UITextViewTextDidChangeNotification object:nil];
在方法实现里添加改变高度的代码:
- (void) UITextViewTextDidChange:(NSNotification *) notif
{
NSString *str = self.reviewTV.text;
//首先规定一个最大宽高(结构体)
CGSize maxSize=CGSizeMake(284, 1000);
//计算内容大小
CGSize contentSize=[str sizeWithFont:self.reviewTV.font constrainedToSize:maxSize lineBreakMode:NSLineBreakByWordWrapping];
//动态改变textview和其他相关控件的大小和位置
if (contentSize.height + 20 > self.reviewTV.frame.size.height ) {
self.reviewTV.frame=CGRectMake(18, 60, 284, contentSize.height + 20);
}
else if (contentSize.height - 20 < self.reviewTV.frame.size.height) {
self.reviewTV.frame=CGRectMake(18, 60, 284, contentSize.height + 20);
}
}