Ollie177 Ollie177 - 2 months ago 29
iOS Question

How to resize UITextView while typing inside it?

I'm creating a comment section much like the one Facebook uses for it's messaging section in it's iOS app. I want the

UITextView
to resize the height so the text I'm typing fits inside it rather than you having to scroll to see the text that overflows. Any ideas how I might go about doing this? I've looked into maybe using a
CGRect
that is assigned to the size and height of the text view which then matches the content size:

CGRect textFrame = textView.frame;
textFrame.size.height = textView.contentSize.height;
textView.frame = textFrame;


I assume I need some sort of function that detects when the text reaches the bounds of the
UITextView
and then resizes the height of the view? Has anyone struggled with this same concept?

Answer

You can adjust frame in this delegate method, do not forget to set textView's delegate to self.

-(BOOL)textView:(UITextView *)_textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
      [self adjustFrames];  
      return YES;
}


-(void) adjustFrames
{
   CGRect textFrame = textView.frame;
   textFrame.size.height = textView.contentSize.height;
   textView.frame = textFrame;
}

this solution is for iOS6 and prior... for iOS7 refer to this

StackOverflow Answer

Comments