Die Navigationsleiste wird mit dem neuen iOS7 SDK über den Ansichten angezeigt

CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];


UISearchBar  *mySearchBar = [[UISearchBar alloc] 
               initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];

mySearchBar.autoresizingMask = 
              UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;


UITableView  *myTableView = [[UITableView alloc] 
     initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];

myTableView.autoresizingMask = 
               UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;


[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];

In den früheren Versionen funktioniert es korrekt. Die Suchleiste erscheint unter demstatusbar und Navigationsleiste. Dastableview wird unterhalb der Suchleiste angezeigt

Aber wenn ich das macheXcode 5 sdk iOS 7, die Suchleiste ist nicht sichtbar (ich denke, es ist unter der Statusleiste und der Navigationsleiste platziert), und auch die Navigationsleiste wird über der Tabellenansicht angezeigt.

Wird es behoben mitiOS 7 stabile Version ?

Oder ist es das Problem meiner Codierung?

Oder sollten wir damit umgehen, indem wir das y addieren?(y = statubar height + nav bar height) Wert füriOS 7 ?

Ich habe kürzlich Xcode 5 DP heruntergeladen, um meine Apps unter iOS 7 zu testen. Als Erstes habe ich festgestellt und bestätigt, dass die Größe meiner Ansichtsgrenzen nicht immer angepasst wird, um die Statusleiste und die Navigationsleiste zu berücksichtigen.

In viewDidLayoutSubviews drucke ich die Grenzen der Ansicht:

{{0, 0}, {320, 568}}

Dies führt dazu, dass mein Inhalt unterhalb der Navigationsleiste und der Statusleiste angezeigt wird.

Ich weiß, dass ich die Höhe selbst berechnen könnte, indem ich die Höhe des Hauptbildschirms abziehe, die Höhe der Statusleiste und die Höhe der Navigationsleiste subtrahiere, aber das scheint unnötiger zusätzlicher Aufwand zu sein.

Hat jemand anderes dieses Problem erlebt?

AKTUALISIEREN:

Ich habe eine Lösung für dieses spezielle Problem gefunden. Setzen Sie die transluzente Eigenschaft der Navigationsleiste auf NO:

self.navigationController.navigationBar.translucent = NO;

Dadurch wird verhindert, dass die Ansicht unter der Navigationsleiste und der Statusleiste eingerahmt wird.

Ich habe jedoch keine Lösung für den Fall gefunden, dass die Navigationsleiste durchsichtig sein soll. Wenn ich beispielsweise ein Foto im Vollbildmodus betrachte, möchte ich, dass die Navigationsleiste durchscheinend ist und die Ansicht darunter eingerahmt wird. Das funktioniert, aber wenn ich die Navigationsleiste ein- oder ausblende, werden noch seltsamere Ergebnisse erzielt. Die erste Unteransicht (aUIScrollView) erhält seine Grenzen y Ursprung jedes Mal geändert.