Wednesday 31 May 2017

Edgesforextendedlayout Navigationsleiste Css


Fixieren der iOS 7 Navigationsleiste Overlap Problem Es gab ein Problem, das IRA-Entwickler geplagt hat, da die hübschen transparenten Navigationsleisten in iOS 7 herauskamen, etwas, wenn ich fragen, warum es geschieht, haben sie absolut keine Ahnung. Es gibt eine einfache Fix, die jeder verwendet hat, aber it39s ein Hack und viele Entwickler haben es nur ohne Verständnis des Problems. Setzen Sie das in Ihren Controller und plötzlich funktioniert es einfach. irgendwie. Nun hat die Nav-Bar keinen Sinn, transparent zu sein, was den Zweck besiegt. Die Ansichten, die dahinter sein sollten, unsere Wurzelansicht und it39s Hintergrundfarbe, aren39t, das durch mehr zeigt. Ehrlich gesagt, es ist dir vielleicht egal, das könnte für dich genügen, aber es ist wichtig, dass du immer noch das Problem verstehst, also lies weiter. Wenn you39ve getan Web-Entwicklung, das ist sorta wie Überlauf: in CSS versteckt. Hat den Job, aber es ist immer noch Art von einem Quothackquot. Das Problem besteht also darin, dass der Frame, anders als bei iOS 6, den Bereich unterhalb der Navigationsleiste noch umfasst. Was Sie vielleicht nicht realisiert haben, ist, wenn ein UIScrollView. Oder eine Unterklasse wie UITableView. Ist die Wurzelansicht für Ihren Controller, es wird die contentInset - Eigenschaftsset-Eigenschaft ordnungsgemäß haben, so dass der Frame unter der Navigationsleiste sein kann, aber der eigentliche Ursprung, den er mit der Zeichnung beginnt, befindet sich stattdessen am unteren Rand der Navigationsleiste. Dies bedeutet, dass wir das Problem der Überlappung der Navigationsleiste sehr einfach beheben können, indem wir unsere root-Ansicht stattdessen mit einer UIScrollView (oder Unterklasse von) versehen, während wir trotzdem unsere Hintergrundfarbe durchscheinen lassen. Sie können Ihre Root-Ansicht ein UIScrollView definieren, indem Sie die loadView-Methode definieren, in der Ihre Root-Ansicht und Ihre Unter-Ansichten erstellt werden sollen, wenn Sie Ihre Ansichten programmgesteuert erstellen. Wenn Sie das ausprobieren, erhalten Sie diese. Beachten Sie das rote Leuchten durch die Navigationsleiste Beachten Sie, dass wir setzen, dass blaue view39s Herkunft die obere linke Ecke sein Alles ist gut sitzen und arbeiten, wie Apple erwartet, dass wir die transparenten Navigationsleisten verwenden. Dies hat den zusätzlichen Vorteil, dass uns ein einfacher Weg, um unser Layout über den Bildschirm zu jetzt, dass wir39re mit einer Scroll-Ansicht zu erweitern, aber Sie können dies nicht sowieso benötigen, sondern können Sie es einfach als Ersatz für UIView, die es haben können ContentInset-Set. Ich haven39t schaute in die Gedächtnisunterschiede für dieses, aber meine Erwartung ist, dass es extrem minimal sein würde. Wenn Sie mehr über RubyMotion erfahren möchten, schauen Sie sich meine Screencasts bei motioninmotion. tv oder meinem kommenden Buch RubyMotion for Rails Developers an. Die für Pre-Order jetzt verfügbar ist, unter einem Pay What You Want Preismodell, mit Teil 1 fast fertig und wird bald veröffentlicht werden. RubyMotion Adventures - Die MotionInMotion BlogMy-App scheint ordnungsgemäß ausgelegt werden, aber ich kann nicht erreichen, die verschwommene transluzente Wirkung, die iOS 7 berühmt ist. Mine erscheint opak. Gewünschte Wirkung Im Versuch, einen offensichtlichen Unschärfeeffekt wie Apples Trailers app zu erhalten: Translucency In meiner Unterklasse von UINavigationController mache ich die Navigationsleiste transluzent: Tint Color In meiner Subklasse von UIApplicationDelegate stelle ich die Tönungsfarbe der Navigationsleiste ein. Ich entdeckte, dass das Alpha der Farbtonfarbe keinen Unterschied macht. Das heißt, dass die Verwendung eines Alphas von 0,1 nicht dazu führen würde, dass der Balken lichtdurchlässiger wird. In meinem Content-View-Controller, setzte ich die Kante zu UIRectEdgeNone, so dass die Top-doesnt get chopped off durch die Navigationsleiste. Wenn ich die Standard-UIRectEdgeAll verwenden. Würde die Navigationsleiste dauerhaft die Oberseite meines Inhalts bedecken. Selbst wenn ich mit dieser Anomalie leben würde, ermöglicht UIRectEdgeAll den Transluzenz-Effekt immer noch nicht. Edit: Experimenting mit Edges Ad von rmaddy in den Kommentaren darauf hingewiesen, kann das Problem mit dem KantenForExtendedLayout. Ich fand ein umfassendes Tutorium edgesForExtendedLayout und versuchte es zu implementieren: Es hat nicht funktioniert. Erstens gab es keine Transparenzwirkung. Zweitens wurde die Spitze meiner Inhalte abgehackt. Auf der folgenden Beispielseite mit dem obigen Code wurde der Avatar zunächst von der Navigationsleiste abgedeckt und es war sehr schwer zu scrollen. Sie könnten herunterziehen, um die Spitze des Avatar zu sehen, aber wenn Sie loslassen, würde die Seite automatisch wieder zurück und der Avatar würde wieder verdeckt werden. Gespeichert Nov 14 13 at 1:19 rmaddy. Der Screenshot kam auf iPhone 5 mit iOS 7.0.3 mit dem System quotreduce Animationquot Einstellung ausgeschaltet. Mit der Standardeinstellung UIRectEdgeAll wird der obere und untere Teil der Inhaltsansicht unter den Navigations - und Tabulatoren verklemmt, wie ich aus diesem Thread gelernt habe. I39ve versucht die Standard-UIRectEdgeAll und es macht keinen Unterschied in den Spezialeffekten. Ndash Pwner Nov 14 13 at 1:51 Das Problem wurde durch die Drittanbieter-Pull-Down-to-Refresh-Ansicht EGORefreshTableHeaderView verursacht. Die populär verwendet wurde, bevor iOS 6 die System-Refresh-Steuerung eingeführt. Diese Ansicht verwechselt iOS 7, so dass es denke, dass der Inhalt größer ist, als es wirklich ist. Für iOS 6 und 7, Ive bedingt wechselte zu UIRefreshControl. Nun wird die Navigationsleiste nicht abschneiden meine Inhalte. Ich kann UIRectEdgeAll verwenden, um meinen Inhalt unter die Navigationsleiste zu bewegen. Schließlich färbe ich meine Navigationsleiste mit einem niedrigeren Alpha, um den Transluzenz-Effekt zu erhalten. Antwortete Nov 15 13 bei 0:16

No comments:

Post a Comment