Ich habe das gleiche Problem wie der Thread here. Ich kann es schaffen, die Statusleiste sichtbar zu machen, indem ich den Text weiß mache, aber das ist nicht mein Ziel. Ich meine auch, wie alle Navigationsleisten oben auf der Leiste zu malen. Ich habe dies erreichen können, indem ich die gewünschten Shapes mit Ansichten unter layoutSubviews hinzugefügt habe, aber auf diese Weise können Sie nicht interagieren oder das UINavigationItem sehen. Code:DrawRect in einer UINavigationBar-Unterklasse macht die Statusleiste schwarz
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor yellowColor] setFill];
UIRectFill(rect);
Dies ist das Ergebnis:
Dies ist der Bast, die mit drawRect erreicht werden kann:
Und das passiert, wenn Sie es tun unter layoutSubviews:
Wie Sie sehen können, sind der hintere Text, der Pfeil, alle verloren. Also ich suche wirklich nach einer Möglichkeit, drawRect arbeiten zu lassen! Vielen Dank im Voraus für Ihre Hilfe!
Sie wollten, dass es wie Ihr drittes Bild aussieht, aber der Button wird nicht angezeigt? – Tj3n
@ Tj3n Ja, aber es ist nicht nur die Farbe, die ich möchte, sonst würde ich die Eigenschaft Farbton verwenden. Die Leiste soll eine richtige Skizze sein (mit einem Stern und mehreren Farben). Und das liegt daran, dass layoutsubviews oben auf drawRect funktioniert, da die Ansichten alle sichtbaren Elemente blockieren (die Schaltfläche, der Titel auf dem Hauptbildschirm, alles). – isklikas
Sie können den 'navigationBar' Hintergrund, den Schatten und die Farbe wirklich verstecken, um Farbe zu löschen, dann fügen Sie Ihre benutzerdefinierte Ansicht unterhalb dieser unsichtbaren Navigationsleiste hinzu, ich tue das für benutzerdefinierte nav bar: D ich kann in swift antworten, wenn Sie brauchen, sonst googlen können ziemlich einfach – Tj3n