Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

UITableView ContentInset and ContentOffset

I'm having trouble with the contentInset property. I have a UITableView, with dynamic cell sizes (AutoLayout). I'm setting the contentInset property to leave some space above the top of the content. But I'm getting the following result:

Unexpected Result

The content is in blue, the content inset in purple. When the table view first appears, it is in the left situation. I can scroll to get to the right situation, that is working, but I would like the table view to appears directly as in the right illustration — which I thought would be the default behavior.

How can I achieve that?

like image 398
Coconuts Avatar asked Jan 26 '23 21:01

Coconuts


2 Answers

Not sure if it's the best way but I fixed it by adding:

tableView.contentOffset.y = -70

after the line:

tableView.contentInset = UIEdgeInsets(top: 70, left: 0, bottom: 50, right: 0)
like image 58
Coconuts Avatar answered Feb 05 '23 01:02

Coconuts


you can scroll programmatically when the view loads.

tableView.setContentOffset(CGPoint(x: 0, y: -70), animated: false)
like image 20
Cosneanu Cristian Avatar answered Feb 05 '23 00:02

Cosneanu Cristian