erstellen einer Ansicht programmgesteuert mit der frame-set zu superview-Rahmen?

Ich habe eine navigation-basierte Anwendung, wo ich meine benutzerdefinierten Ansichten in die Ansicht navigation.

Erste, ich will wissen, wie man die "navigation anzeigen"s-frame so, dass ich meine benutzerdefinierte Ansicht richtig drauf.

Auch habe ich manchmal verstecken Navigationsleiste und möchte sicherstellen, dass ich den frame info richtig. (nicht mit [[UIScreen mainScreen] bounds] )

Zweiten, im Allgemeinen, wie greife ich auf die superview-Rahmen, so dass ich eine Ansicht entsprechend?

Ich habe Folgendes versucht, ohne Erfolg.

-(void) loadView {
[super loadView];
UIView* myView = [[UIView alloc] initWithFrame: CGRectZero];
self.view = myView;
self.view.frame = self.view.superview.frame;
[myView release];
}

oder die Einstellung der frame im layoutSubviews, aber bemerkt, layoutSubviews nicht immer genannt. Ich denke, das ist, weil ich nicht alle Untersichten in dieser bestimmten Ansicht?

Danke

-Bearbeiten-

mit vorgegebenen Antworten, ich weiß jetzt, dass ich brauche, um die Ansicht einzustellen.frame superview ' s Grenzen.

Das problem ist, dass ich nicht in der Lage bin, um den Zugang superview innen viewDidLoad.

Ich kann sehen, dass superview ist richtig eingestellt, in viewWillAppear aber nicht in viewDidLoad.

Fand ich heraus, dass viewDidLoad wird aufgerufen, zu verschiedenen Zeiten, wie wenn er gedrückt wird durch pushViewController oder den Zugriff auf sich selbst.Ansicht

Ich habe den folgenden code und viewDidLoad wird aufgerufen, vom nil == controller.Blick.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];
}

Da kann ich nicht zugreifen superview aus viewDidLoad, kann ich nicht layout die Ansicht, wie ich vorher in viewDidLoad. Dies scheint, so unbequem und unnötig Komplex.

Jeder Vorschlag, bitte?

  • Sie Lesen müssen, view-Hierarchie in iOS.
  • aye, googeln Sie es.
InformationsquelleAutor eugene | 2010-11-09
Schreibe einen Kommentar