I am facing an issue of resizing UITextView in pinch gesture recognizer method. This gesture recognizer is for another view. I want that textview should also be resized along with that view.
I successfully able to resize UITextView according to requirement. But I have issue with text displayed in textview. After zooming in and zooming out for few times. contents inside UITextView does not come properly (see below image "After zooming in/out"). It decreases content width. I checked content size of UITextView, but it gives same width before resizing and after resizing.
Here, I have set text alignment to center for UITextView. I have also applied contentInset to UIEdgeInsetZero.
Any help will be appreciated.
Before zooming in/out
After zooming in/out
Are you calling setNeedsLayout
on the parent view after you have altered the frame?
Try logging the bounds of the text view like so:
NSLog(@"Bounds: %@", NSStringFromCGRect(textView.bounds));
I won't profess to be an expert on this, but it seems that UITextView
wants to have a baseline of CGRectZero
to work with, I have run into this very issue and my findings were that the problem presented itself when shrinking the UITextView
, not when enlarging, so by overriding - (void)layoutSubviews
like this:
- (void)layoutSubviews {
CGRect bounds = self.bounds;
self.bounds = CGRectZero;
self.bounds = bounds;
}
in a subclass of UITextView
this issue will be resolved. This definitely isn't the most elegant thing I've ever seen, but it's the only solution I've come up with.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With