Edgesforextendedlayout Uiviewcontroller Delegate
In meiner Navigation Stacks Kind, habe ich EdgesForExtendedLayout. None Wenn ich auf die Schaltfläche "Zurück" klicken, wird die UITableView in meinem Elternteil verschoben, als ob die Navigationsleiste nicht vorhanden ist. (Die Navigationsleiste umfasst den Tisch). Warum ist die Childs-Rand-Einstellung beeinflussen ihre Eltern Ich möchte nur, dass es den aktuellen viewController beeinflussen. In meinem Elternteil, so habe ich das UITableView erstellt: Könnte es sein, dass ich das TableViews-Framework falsch stelle, möchte ich, dass die Tabelle unterhalb der Navigationsleiste beginnt, aber vor der Tab-Leiste endet. Ich habe versucht, Ihr Problem so zu reproduzieren: Richten Sie ein UITableView in einem UIViewController mit einer einzigen Zelle ein, die einen neuen UIViewController schiebt. In dieser Ansicht hat control39s viewDidLoad. Ich setze selber. Wenn ich den Rückruf auf den UITableViewController drücke. Ich sehe keine Änderung der Position der Tabellenansicht. Ändern Sie die EdgesForExtendedLayout auf dem UINavigationController direkt ndash JAL Apr 27 16 bei 20: 15Starten in iOS7, die View-Controller verwenden standardmäßig das Vollbild-Layout. Zur gleichen Zeit haben Sie mehr Kontrolle darüber, wie es seine Ansichten ausstellt, und das ist mit diesen Eigenschaften getan: Grundsätzlich, mit dieser Eigenschaft legen Sie fest, welche Seiten Ihrer Ansicht erweitert werden können, um den ganzen Bildschirm zu decken. Stellen Sie sich vor, dass Sie einen UIViewController in einen UINavigationController schieben. Wenn die Ansicht dieses View-Controllers ausgelegt ist, wird es beginnen, wo die Navigationsleiste endet, aber diese Eigenschaft wird festlegen, welche Seiten der Ansicht (oben, links, unten, rechts) erweitert werden können, um den gesamten Bildschirm zu füllen. Lassen Sie es mit einem Beispiel sehen: Hier legen Sie den Wert von edgesForExtendedLayout nicht fest. Daher wird der Standardwert übernommen (UIRectEdgeAll), so dass die Ansicht ihr Layout erweitert, um den gesamten Bildschirm zu füllen. Dies ist das Ergebnis: Wie Sie sehen können, erstreckt sich der rote Hintergrund hinter der Navigationsleiste und der Statusleiste. Jetzt wirst du diesen Wert auf UIRectEdgeNone setzen. So dass Sie sagen, die View-Controller nicht zu erweitern die Ansicht, um den Bildschirm zu decken: Diese Eigenschaft wird verwendet, wenn Ihre Ansicht ist ein UIScrollView oder ähnlich, wie ein UITableView. Sie wollen, dass Ihre Tabelle beginnt, wo die Navigationsleiste endet, weil Sie den ganzen Inhalt nicht sehen werden, wenn nicht, aber gleichzeitig möchten Sie, dass Ihr Tisch den gesamten Bildschirm beim Scrollen abdeckt. In diesem Fall wird das Setzen von EdgesForExtendedLayout auf None nicht funktionieren, da Ihre Tabelle beginnt zu scrollen, wo die Navigationsleiste endet und es wird nicht dahinter gehen. Hier ist, wo diese Eigenschaft praktisch ist, wenn man den View-Controller automatisch die Insets anpasst (Einstellung dieser Eigenschaft auf JA, auch den Default-Wert) wird es Insert an die Spitze der Tabelle hinzufügen, so dass die Tabelle beginnt, wo die Navigation Bar endet, aber die Rolle wird den ganzen Bildschirm abdecken. Dies ist, wenn auf NO gesetzt ist: Und JA (standardmäßig): In beiden Fällen blättert die Tabelle hinter der Navigationsleiste, aber im zweiten Fall (JA) beginnt sie von unterhalb der Navigationsleiste. Dieser Wert ist nur eine Ergänzung zu den vorherigen. Wenn die Statusleiste opak ist, werden die Ansichten nicht auf die Statusleiste erweitert, es sei denn, dieser Parameter ist JA. Also, wenn du deine Ansicht verlängst, um die Navigationsleiste zu decken (edgesForExtendedLayout zu UIRectEdgeAll) und der Parameter ist NEIN (Standard), wird es nicht die Statusleiste abdecken, wenn es opak ist. Wenn etwas nicht klar ist, schreiben Sie einen Kommentar und Ill Antwort darauf. Wie IOS weiß, was UIScrollView für die Verwendung von iOS die erste Subview in deiner Viewcontroller-Ansicht, also die bei Index 0, und wenn es eine Unterklasse von UIScrollView dann die erklärten Eigenschaften anwendet. Natürlich bedeutet dies, dass UITableViewController standardmäßig arbeitet (da die UITableView die erste Ansicht ist).
Comments
Post a Comment