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 statusbar
barra di navigazione e. La tableview
sta 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 7
una 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.