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];
Nelle versioni precedenti funziona correttamente. La barra di ricerca viene visualizzata sotto la statusbarbarra di navigazione e. La tableviewsta comparendo sotto la barra di ricerca
Ma quando lo eseguo Xcode 5 sdk iOS 7, la barra di ricerca non è visibile (penso che sia posizionata sotto la barra di stato e la barra di navigazione), e anche la barra di navigazione appare sopra la vista tabella.
Verrà risolto con iOS 7una versione stabile?
O è il problema della mia codifica?
O dovremmo gestirlo aggiungendo il (y = statubar height + nav bar height)valore y per iOS 7?
Di recente ho scaricato Xcode 5 DP per testare le mie app in iOS 7. La prima cosa che ho notato e confermato è che i limiti della mia vista non sono sempre ridimensionati per tenere conto della barra di stato e della barra di navigazione.
In viewDidLayoutSubviews, stampo i limiti della vista:
{{0, 0}, {320, 568}}
In questo modo i miei contenuti vengono visualizzati sotto la barra di navigazione e la barra di stato.
So che potrei spiegare l'altezza da solo ottenendo l'altezza dello schermo principale, sottraendo l'altezza della barra di stato e l'altezza della barra di navigazione, ma sembra un lavoro extra non necessario.
Qualcun altro ha riscontrato questo problema?
AGGIORNARE:
Ho trovato una soluzione per questo problema specifico. Imposta la proprietà traslucida della barra di navigazione su NO:
self.navigationController.navigationBar.translucent = NO;
Ciò risolverà la visualizzazione dall'inquadratura sotto la barra di navigazione e la barra di stato.
Tuttavia, non ho trovato una soluzione per il caso in cui desideri che la barra di navigazione sia traslucida. Ad esempio, visualizzando una foto a schermo intero, desidero che la barra di navigazione sia traslucida e che la vista sia incorniciata al di sotto di essa. Funziona, ma quando si attiva / disattiva la visualizzazione della barra di navigazione, ho riscontrato risultati ancora più strani. La prima sottoview (a UIScrollView) ottiene i suoi limiti y origine cambiata ogni volta.


