J'ai une application basée sur la navigation où je place mes vues personnalisées dans la vue de navigation. Premièrement, je veux savoir comment obtenir l'image de "navigation" afin que je puisse placer ma vue personnalisée correctement.
En outre, je cache parfois la barre de navigation et je veux m'assurer que je reçois les informations sur l'image correctement. (pas avec les limites [[UIScreen mainScreen]])créer une vue par programmation avec cadre défini à l'image de superview?
Deuxièmement, en général, comment puis-je accéder à la vue de l'aperçu pour pouvoir placer une vue en conséquence?
J'ai essayé ce qui suit sans succès.
-(void) loadView {
[super loadView];
UIView* myView = [[UIView alloc] initWithFrame: CGRectZero];
self.view = myView;
self.view.frame = self.view.superview.frame;
[myView release];
}
ou de définir le cadre dans layoutSubviews, mais remarqué layoutSubviews pas appelé Je suppose que c'est parce que je n'ai pas de sous-vues dans cette vue particulière?
Merci
-Edit-
avec réponses, je sais maintenant que je dois mettre le view.frame aux limites de SuperView.
Le problème est que je ne peux pas accéder à superview dans viewDidLoad.
Je peux voir que superview est correctement défini dans viewWillAppear mais pas dans viewDidLoad.
Je trouve que viewDidLoad est appelée à plusieurs reprises, comme lorsqu'il est poussé par pushViewController ou l'accès à self.view
Je le code suivant et viewDidLoad est appelé de zéro == controller.view.superview.
if (nil == controller.view.superview) {
CGRect frame = scrollView.frame;
frame.origin.x = frame.size.width * page;
frame.origin.y = 0;
controller.view.frame = frame;
[scrollView addSubview:controller.view];
}
Depuis que je ne peux pas accéder à superview de viewDidLoad, je ne peux pas le point de vue mise en page comme je l'ai déjà fait dans viewDidLoad. Cela semble si incommode et inutilement complexe.
Une suggestion, s'il vous plaît?
Vous devez lire la hiérarchie des vues dans iOS. – Tirth
oui, googling it. – eugene