UITextView
行数が増えるにつれて高さを変更しようとしている があります。これとは別にUIView
、UITextView
が含まれている のサイズを変更する必要があります。これには次のコードを使用しています。
-(void) textViewDidChange:(UITextView *)textView{
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,
self.containerView.frame.origin.y-final, self.containerView.frame.size.width, frame.size.height+13)];
[textView setFrame: frame];
}
テキストが変更されると、コンテナーの Y 位置も変更しようとしています。複雑さを避けるために、フォントサイズに応じて静的な数値を使用しています。
UITextView
しかし、問題は、 が新しい行に入るたびにcontentSize
元のサイズにサイズ変更されるため、 のフレームUITextView
も一瞬縮小され、見栄えが悪くなります。また、Y 位置はこの変更に依存しcontentSize
、この自動サイズ変更が発生するとすべてが台無しになります。
whatsapp や viber などのアプリと同じ動作を探しています。どうすればこれを達成できますか?