我有一个UITextView
我想要调整大小的高度随着行数的增加而增加。除此之外,我需要调整包含UIView
的{{1}}的大小。我正在使用以下代码:
- (void)textViewDidChange:(UITextView *)textView {
UITextView
self.containerView.frame.origin.y-final,self.containerView.frame.size.width, frame.size.height + 13)];
CGFloat before = textView.frame.size.height; CGRect frame = textView.frame; frame.size = textView.contentSize; CGFloat after = frame.size.height, diff = after - before, final = 0; if (diff>16) { final = 8; }else if(diff<-1){ final = -16; }else{ final = 0; } [self.containerView setFrame: CGRectMake(self.containerView.frame.origin.x,
}
我还试图在文本更改时更改容器的Y位置。我根据字体大小使用静态数值,以避免并发症。
但问题是,每当[textView setFrame: frame];
输入新行时,它会将UITextView
的大小调整为原始大小,因此contentSize
的帧也会缩短片刻,看起来真的很难看。此外,Y位置取决于此UITextView
更改,当自动调整大小时,它会全部搞乱。
我正在寻找与whatsapp或viber等应用相同的行为。知道如何实现这个目标吗?
答案 0 :(得分:0)
如果我理解正确,containerView包含一个文本字段,必须围绕它绘制,无论文本字段的大小如何?如果是这样,请尝试这样的事情
-(void) textViewDidChange:(UITextView *)textView
{
CGRect frame = textView.frame;
frame.size = textView.contentSize;
//do your magic calculations
[textView setFrame: frame];
[self.containerView setFrame: CGRectMake(self.containerView.frame.origin.x,
self.containerView.frame.origin.y-final, self.containerView.frame.size.width, frame.size.origin.y +frame.size.height+13)];
}