I have an app with a UITableView which is fed data through an NSFetchedResultsController. The table view is sorted alphabetically and divided into sections by first letter.
When upgrading to iOS 7 on my phone, I have noticed that the section index titles does not work properly:
Action: Tap section index title "M" to scroll list to items starting with the letter M.
Expected results: Table view scrolls to first item in section M, section header remains visible.
Actual results: Table view scrolls to second item in section M, section header is not visible. The first item exists, but is just above the visible box.
On iOS 6, it all works as expected.
On a side note, the rubber banding effect above the top row and below the bottom row has a strange behavior as well, by 'stretching' the rubber band, I can see the first row, but as soon as I release it, the first row scrolls offscreen again. Likewise for the bottom row.
Updates
This is most likely caused by migrating from Xcode 4.6 Auto-layout to Xcode 5 Auto-layout, which I hear are not compatible. Maybe some constraint gone bad? I'm still struggling to find the cause of it.
The scene in Interface Builder consists of a UIView that contains two subviews -- two UITableViews that lay on top of eachother. Which of the two views that is visible is toggled through a UISegmentedControl on top in the nav bar. On the bottom there is a tab bar.
I have laid out interface manually in IB so that they all are fullscreen, this is done individually, i.e. no constraint specify same width/height, etc. The constraints I use have been none; suggested contraints by Autolayout; and I have also tried making contentInsets on both tableviews, as suggested by @duci9y.
The nav bar is set to non-transparent as suggested by @Popara.
End note
If I could understand how set the tableviews to be full screen except to shrink to make sure they don't underlap the navbar and tab bar.