【发布时间】:2014-11-26 00:43:07
【问题描述】:
我正在尝试根据其中的文本更新 TextView。当用户输入更多文本时,我需要将高度增加到底部方向。超过一行。
我目前正在使用以下代码:
-(void)textViewDidChange:(UITextView *)textView{
CGRect newFrame = self.frame;
newFrame.size.height = [self textViewHeightForAttributedText:
[[NSMutableAttributedString alloc] initWithString:self.text]
andWidth:self.frame.size.width];
[self setNeedsLayout];
}
- (CGFloat)textViewHeightForAttributedText: (NSAttributedString*)text andWidth:
(CGFloat)width {
UITextView *calculationView = [[UITextView alloc] init];
[calculationView setAttributedText:text];
CGSize size = [calculationView sizeThatFits:CGSizeMake(width, FLT_MAX)];
return size.height;
}
但是,这不会更新UITextView 的高度。我已经设置了UITextView 的代表。这段代码写在UITextView子类的子类中。
【问题讨论】:
标签: ios objective-c cocoa-touch uitextview