iOS 7 UITextView vertical alignment
ios, ipad, objective-c, uitextview, vertical-alignment
Solution
Try to call `-sizeToFit` after passing the text. This answer could be useful to Vertically align text within a UILabel. [UPDATE] I update this answer o make it more readable. The issue is that from iOS7, container view controllers such as UINavigationController or UITabbarController can change the content insets of scroll views (or views that inherit from it), to avoid content overlapping. This happens only if the scrollview is the main view or the first subviews. To avoid that you should disable this behavior by setting `automaticallyAdjustsScrollViewInsets` to NO, or overriding this method to return NO.
Problem
How is that possible that my editable `UITextView` (placed inside a straightforward UIViewController inside a `UISplitView` that acts as delegate for the `UITextView`) is not showing text from the beginning but after something like 6-7 lines? I didn't set any particular autolayout or something similar, trying to delete text doesn't help (so no hidden chars or something). I'm using iOS 7 on iPad, in storyboard looks good... The problem is the same on iOS simulator and real devices. I'm getting mad :P Here's some code. This is the ViewController `viewDidLoad()` ``` - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. self.itemTextField.delegate = self; self.itemTextField.text = NSLocalizedString(@"NEWITEMPLACEHOLDER", nil); self.itemTextField.textColor = [UIColor lightGrayColor]; //optional } ``` And here are the overridden functions for the `UITextView` I'm using some code I've found on StackOverflow to simulate a placeholder for the view (the same stuff on iPhone version of the storyboard works fine)... ``` // UITextView placeholder - (void)textViewDidBeginEditing:(UITextView *)textView { if ([textView.text isEqualToString:NSLocalizedString(@"NEWITEMPLACEHOLDER", nil)]) { textView.text = @""; textView.textColor = [UIColor blackColor]; //optional } [textView becomeFirstResponder]; } - (void)textViewDidEndEditing:(UITextView *)textView { if ([textView.text isEqualToString:@""]) { textView.text = NSLocalizedString(@"NEWITEMPLACEHOLDER", nil); textView.textColor = [UIColor lightGrayColor]; //optional } [textView resignFirstResponder]; } -(void)textViewDidChange:(UITextView *)textView { int len = textView.text.length; charCount.text = [NSString stringWithFormat:@"%@: %i", NSLocalizedString(@"CHARCOUNT", nil),len]; } - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text { return YES; } ```