Meine Antwort wird allgemeiner sein, aber kann auch auf dies angewendet werden.
Wenn die Root-Ansicht (des View Controllers) oder das erste untergeordnete Element (Subview) der Root-Ansicht eine Unterklasse des UIScrollView (oder UIScrollView selbst) ist, und wenn
self.navigationController.navigationBar.translucent = YES;
wird das Framework automatisch vorab berechnete Inhaltsabstände setzen.
Um dies zu vermeiden, kannst du das machen
self.automaticallyAdjustsScrollViewInsets = NO;
aber in meinem Fall konnte ich das nicht tun, weil ich ein SDK implementiert habe, das ein UIView-Komponente enthält, die von anderen Entwicklern verwendet werden kann. Diese UIView-Komponente enthält ein UIWebView (das UIScrollView als ersten Unterblick enthält). Wenn diese Komponente als erstes Kind in der View-Hierarchie des UIViewControllers hinzugefügt wird, werden automatische Abstände vom System angewendet.
Ich habe dies behoben, indem ich eine Dummy-Ansicht mit dem Rahmen (0,0,0,0) vor dem Hinzufügen des UIWebView hinzugefügt habe.
In diesem Fall hat das System keine Unterklasse des UIScrollView als ersten Unterblick gefunden und keine Abstände angewendet.