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];
Dans les versions antérieures qu'il fonctionne correctement. La barre de recherche apparaît ci-dessous l' statusbar
et la barre de navigation. L' tableview
apparaît en dessous de la barre de recherche
Mais lorsque je l'exécute sur l' Xcode 5 sdk iOS 7
, la barre de recherche n'est pas visible (je pense qu'il est placé sous la barre d'état et la barre de navigation) , et aussi la barre de navigation apparaît sur l'affichage de la table.
Il sera fixé avec de la iOS 7
version stable ?
Ou est-ce un problème de mon codage ?
Ou devons-nous traiter en ajoutant la y (y = statubar height + nav bar height)
valeur iOS 7
?
J'ai récemment téléchargé Xcode 5 DP pour tester mes applications sous iOS 7. La première chose que j'ai remarqué et confirmé est que mon point de vue de limites n'est pas toujours redimensionnée pour tenir compte de la barre d'état et la barre de navigation.
Dans viewDidLayoutSubviews, j'ai l'impression de la vue de limites:
{{0, 0}, {320, 568}}
Cela se traduit dans mon contenu apparaissant en dessous de la barre de navigation et la barre d'état.
Je sais que je pourrais en compte la hauteur de moi-même par l'obtention de l'écran principal, la hauteur, la soustraction de la barre d'état de la hauteur et de la barre de navigation de la hauteur, mais cela me semble inutile de travail supplémentaire.
Quelqu'un d'autre a rencontré ce problème?
Mise à JOUR:
J'ai trouvé une solution pour ce problème spécifique. Réglez la barre de navigation est translucide propriété:
self.navigationController.navigationBar.translucent = NO;
Cela permettra de fixer le point de vue d'être formulée sous la barre de navigation et la barre d'état.
Cependant, je n'ai pas trouvé une correction pour le cas où vous souhaitez que la barre de navigation pour être translucide. Par exemple, l'affichage d'une photo en plein écran, je tiens à avoir la barre de navigation translucide, et la vue à être encadrées-dessous. Cela fonctionne, mais lorsque je bascule montrer/cacher la barre de navigation, j'ai vécu encore plus étrange des résultats. Le premier sous-vue ( UIScrollView
) obtient ses limites l'origine y sont changés tous les temps.