1

UITextView行数が増えるにつれて高さを変更しようとしている があります。これとは別にUIViewUITextViewが含まれている のサイズを変更する必要があります。これには次のコードを使用しています。

-(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 などのアプリと同じ動作を探しています。どうすればこれを達成できますか?

4

1 に答える 1