I was unaware of contentInset when writing this and do not account for this in my code. This can cause the tableview to jump around or autoscrolling to be really weird.
ContentInset will be automatically set if a bar has UIBarStyleTranslucent.
Fix by taking contentInset into account when working with contentOffset