Friday, 2 June 2017

Edgesforextendedlayout Uitableview Separatorstyle


Ich habe eine UITableView, die mit dieser Methode (innerhalb eines UIViewController) erstellt wird: Wenn die Anwendung den Hintergrund eingibt und der View-Controller dann neu geladen wird, bewegt sich die tableView als Ergebnis (denke ich) der Grenzen ändern. Allerdings habe ich versucht, Auto Layout im Storyboard, drehen die autoresizesSubviews BOOL von self. view und von self. tableView und haben sogar versucht, die Einschränkungen auf der tableView ändern. Jedes Mal, wenn die Ansicht lädt, bewegt sich der Inhalt. Darüber hinaus habe ich die Einleitung in viewDidLoad gesetzt. Aber dann die tatsächlichen Größen nicht auf dem Bildschirm. Wie erzwinge ich erzwingen, dass die tableView bleiben, nachdem sie initiiert in viewDidLayoutSubviews gefragt wird, wird ViewDidLoad nur einmal in der View-Controller-Lebenszyklus aufgerufen, und wird aufgerufen, bevor die Ansicht hat seine bounds-Eigenschaft festgelegt. Dies ist der perfekte Ort, um Ihre Unterviews zu initialisieren. ViewDidLayoutSubviews wird jedes Mal aufgerufen, wenn die Grenzen ändern, so dass das Setzen des Rahmens in dieser Methode wird sicherstellen, dass Ihre tableView ist immer nach den aktuellen Grenzen sortiert: beantwortet Mai 25 14 um 15: 20 Ich habe UITabbarController mit UINavigationController in ihm. Ich habe eine Unterklasse von UIView, die ich als die Ansicht von UIViewController im navController zuordne. Das ist, wie ich es tue Diese Ansicht hat eine UITableView als subView Für die Debugging Ich bin Einstellung self. backgroundColor UIColor blueColor auf die Ansicht. Aus der obigen Initialisierung von tableView könnte man denken, dass der Ansichten - und Tabellenrahmen derselbe ist. Allerdings, wenn ich in iOS laufen 7. die Ansichten Herkunft wird hinter der UINavigationBar festgelegt. Dies ist verständlich, weil ich bin self. navigationBar. translucent JA in meiner Unterklasse von UINavigationController. Aber was ich nicht verstehe ist, wie kommen die Tabelle sitzt gerade unterhalb der navBar. Shouldnt es auch ab (0, 0), die hinter der navBar ist. Siehe Screenshot Szenario 1 unten. Beachten Sie den blauen Farbton hinter navBar Nun schiebe ich einen anderen viewController auf dem Navigationsstack, einfach durch die Verwendung von self. navigationController pushViewController. . Wieder habe ich eine benutzerdefinierte UIView mit einem tableView in ihm. Allerdings habe ich auch eine UILabel oberhalb dieser Tabelle, und wieder für das Debuggen, gab ich ihm ein redColor. Dieses Mal bin ich die Etiketten Ursprungs zu sein fast gleich wie die Ansichten So, gehen durch die Logik oben, sollte das Etikett sichtbar sein, rechts Aber dieses Mal ist es nicht. Dieses Mal befindet sich das Label hinter der navBar. Beachten Sie, die rote Farbe hinter navBar. Ich möchte die subView unterhalb der navBar konsequent ausrichten. Meine Fragen sind 1. Wie wird das tableView durch 64pixels (Höhe der nav Statusleiste in iOS 7) automatisch versetzt, obwohl sein Rahmen das selbe ist wie die Ansichten 2. Warum geschieht das nicht in der zweiten Ansicht

No comments:

Post a Comment