Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITextView is not scrolled to top when loaded

When I have text that does not fill the UITextView, it is scrolled to the top working as intended. When there is more text than will fit on screen, the UITextView is scrolled to the middle of the text, rather than the top.

Here are some potentially relevant details:

In viewDidLoad to give some padding on top and bottom of UITextView:

self.mainTextView.textContainerInset = UIEdgeInsetsMake(90, 0, 70, 0); 

The UITextView uses auto layout to anchor it 20px from top, bottom and each side of the screen (done in IB) to allow for different screen sizes and orientations.

I can still scroll it with my finger once its loaded.

EDIT I found that removing the auto layout constraints and then fixing the width only seems to fix the issue, but only for that screen width.

like image 877
Michael Campsall Avatar asked Jan 20 '15 18:01

Michael Campsall


1 Answers

add the following function to your view controller class...

Swift 3

override func viewDidLayoutSubviews() {     self.mainTextView.setContentOffset(.zero, animated: false) } 

Swift 2.1

override func viewDidLayoutSubviews() {     self.mainTextView.setContentOffset(CGPointZero, animated: false) } 

Objective C

- (void)viewDidLayoutSubviews {     [self.mainTextView setContentOffset:CGPointZero animated:NO]; } 
like image 67
Muhammad Ibrahim Avatar answered Oct 01 '22 17:10

Muhammad Ibrahim