Ich habe eine navigationsbasierte Anwendung, wo ich meine benutzerdefinierten Ansichten in der Navigationsansicht platziert.Erstellen Sie eine Ansicht programmgesteuert mit Rahmen auf Superview-Rahmen gesetzt?
Zuerst möchte ich wissen, wie man den Rahmen der "Navigationsansicht" bekommt, damit ich meine benutzerdefinierte Ansicht richtig platzieren kann.
Auch ich manchmal verstecken Navigationsleiste und möchte sicherstellen, dass ich die Frame-Informationen richtig zu bekommen. (nicht mit [[UIScreen mainScreen] Grenzen])
Zweitens, wie kann ich allgemein auf den Superview-Rahmen zugreifen, damit ich eine Ansicht entsprechend platzieren kann?
Ich versuchte das folgende 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 den Rahmen in layoutSubviews gesetzt, aber bemerkt, dass layoutSubviews nicht aufgerufen wird. Ich vermute, das liegt daran, dass ich in dieser bestimmten Sichtweise keine Unteransichten habe?
Danke
-Edit-
mit gegebenen Antworten, ich weiß jetzt, dass ich die view.frame zu Superview der Grenzen setzen muß.
Das Problem ist, dass ich nicht auf Superview in ViewDidLoad zugreifen kann.
Ich kann sehen, dass Superview korrekt in ViewWillAppear, aber nicht in ViewDidLoad festgelegt ist.
Ich fand heraus, dass viewDidLoad zu verschiedenen Zeiten aufgerufen wird, wie wenn sie von Pushviewcontroller geschoben oder den Zugriff auf self.view
Ich habe den folgenden Code und viewDidLoad von Null aufgerufen wird == 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];
}
Da ich nicht Super von viewDidLoad zugreifen kann, kann ich nicht die Ansicht, Layout, wie ich zuvor in viewDidLoad tat. Dies scheint so unbequem und unnötig komplex zu sein.
Irgendwelche Vorschläge bitte?
Sie müssen Ansichtshierarchie in iOS lesen. – Tirth
aye, googling es. – eugene