Wednesday, 1 November 2017

Edgesforextendedlayout Fehler 500


In meinem Navigationsstapelkind setze ich edgesForExtendedLayout. None, wenn ich die rückseitige Taste anklicke, wird die UITableView in meinem Elternteil verschoben, als ob die Navigationsleiste nicht vorhanden ist. (Die Navigationsleiste deckt die Tabelle ab). Warum hat die childs Randeinstellung sein Elternteil Ich möchte nur, dass es den aktuellen viewController beeinflußt. In meinem Elternteil, das ist, wie ich die UITableView erstellt: Könnte es sein, dass ich den tableViews Rahmen falsch Ich möchte die Tabelle unterhalb der Navigationsleiste zu starten, aber Ende vor der Tab-Leiste. Ich habe versucht, Ihr Problem wie folgt zu reproduzieren: Richten Sie ein UITableView in einem UIViewController mit einer einzigen Zelle, die einen neuen UIViewController schiebt. In diesem View Controller ist viewDidLoad. Ich set self. edgesForExtendedLayout. None. Wenn ich quattrequot drücken, um zurück zu dem UITableViewController zu gehen. Ich sehe keine Änderung der Position der Tabellenansicht. Ändern Sie die EdgesForExtendedLayout auf dem UINavigationController direkt ndash JAL Apr 27 16 um 20: 15 In iOS7 werden die View-Controller standardmäßig mit Vollbild-Layout gestartet. Gleichzeitig haben Sie mehr Kontrolle darüber, wie es seine Ansichten ausgibt, und das ist mit diesen Eigenschaften getan: Grundsätzlich legen Sie mit dieser Eigenschaft fest, welche Seiten Ihrer Ansicht erweitert werden können, um den gesamten Bildschirm zu decken. Stellen Sie sich vor, Sie schieben einen UIViewController in einen UINavigationController. Wenn die Ansicht des View-Controllers angelegt ist, wird es gestartet, wo die Navigationsleiste endet, aber diese Eigenschaft stellt fest, 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 Vorgabewert (UIRectEdgeAll) übernommen, sodass 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 werden Sie diesen Wert auf UIRectEdgeNone setzen. So dass Sie sagen, die Ansicht-Controller nicht erweitern Sie die Ansicht auf den Bildschirm zu decken: Diese Eigenschaft wird verwendet, wenn Ihre Ansicht ein UIScrollView oder ähnliches ist, wie ein UITableView. Sie möchten, dass Ihre Tabelle anfängt, wo die Navigationsleiste endet, weil Sie den gesamten Inhalt nicht sehen, wenn nicht, aber gleichzeitig möchten Sie, dass Ihr Tisch den gesamten Bildschirm beim Scrollen abdeckt. In diesem Fall wird das Setzen von KantenForExtendedLayout 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 ist praktisch, wenn Sie lassen Sie die View-Controller automatisch passen Sie die Einfügungen (Einstellung dieser Eigenschaft auf YES, auch der Standardwert) wird es Insert an der Spitze der Tabelle hinzufügen, so dass die Tabelle beginnt, wo die Navigation Bar-Enden, aber die Schriftrolle wird den gesamten Bildschirm zu decken. Das ist, wenn auf NEIN gesetzt ist: und JA (standardmäßig): In beiden Fällen blättert die Tabelle hinter der Navigationsleiste, aber im zweiten Fall (JA) wird sie unterhalb der Navigationsleiste gestartet. Dieser Wert ist nur eine Ergänzung zu den vorherigen. Wenn die Statusleiste undurchsichtig ist, werden die Ansichten nicht um die Statusleiste erweitert, es sei denn, dieser Parameter ist JA. Wenn Sie also Ihre Ansicht auf die Navigationsleiste (edgesForExtendedLayout auf UIRectEdgeAll) erweitern und der Parameter NO (Standard) ist, wird sie die Statusleiste nicht überdecken, wenn sie opak ist. Wenn etwas nicht klar ist, schreiben Sie einen Kommentar und krank Antwort darauf. Wie iOS weiß, was UIScrollView verwenden, um iOS greift die erste Unteransicht in Ihrer viewcontroller-Ansicht, so dass die eine bei Index 0, und wenn seine eine Unterklasse von UIScrollView dann die erklärten Eigenschaften an sie anwendet. Natürlich bedeutet dies, dass UITableViewController standardmäßig arbeitet (da die UITableView die erste Ansicht ist).

No comments:

Post a Comment