So entfernen Sie UINavigationBar und UISearchBar Haaransatz
Ich bin erstellen eines iOS-7-app, in der ich hätte gerne eine Suchleiste rechts unten die NavigationBar, und ich wollte, dass Sie beide Aussehen wie aus einem Guss. Deshalb brauche ich eine Tönung mit der gleichen Farbe (schon fertig) und entfernen Sie den Haaransatz an der Unterseite der NavigationBar und oben in der Suchleiste. Wie kann ich das erreichen?
InformationsquelleAutor Guilherme | 2013-09-26
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Offiziell, dies ist nur möglich durch die Einstellung der
shadowImage
von der navigationBar, um ein leeres Bild. Doch ein Blick in die Dokumentation, so heißt es:Indem Sie eine benutzerdefinierte Hintergrundbild, die Sie verlieren würde unscharfen hintergrund Transluzenz.
Wenn Sie abenteuerlustig sind, der "Haaransatz" ist ein UIImageView, ist eine Untersicht der Navigationsleiste. Finden Sie es und legen Sie es als versteckt. Dies ist, was Apple tut, die in Ihrer nativen Kalender-app, zum Beispiel. Denken Sie daran, es zu zeigen, wenn die aktuelle Ansicht verschwindet.
Wenn Sie einen benutzerdefinierten hintergrund Bild, Sie sollte nicht berühren Sie die view-Hierarchie. Sie können verwenden Sie eine leere
shadowImage
. Ich denke, versteckte ich alle Bild-Ansichten in meinem Fall.Ich konnte nicht damit es funktioniert. Ich habe versucht, die shadowImage als ein transparentes 1x1 png-Datei, die gleiche Datei-farbigen mit der gleichen Farbe wie der NavigationBar, mit
[UIImage new]
, und auchnil
, aber keiner von Ihnen arbeitete.Versuchen Sie dabei in die Darstellung der Methoden. Wenn die app lädt, aber bevor Sie Ihre view-controller geladen wird,
[[UINavigationBar appearance] setShadowImage:[UIImage new]];
Ich war in der Lage zu entfernen die Suchleiste einfach durch die Verwendung eines Hintergrundbildes.
InformationsquelleAutor Leo Natan
verwenden Sie folgenden code in AppDelegate (didFinishLaunchingWithOptions)
Danke @Mohamed Saleh
InformationsquelleAutor Nitesh
Swift 3:
Gesucht und versucht, eine Menge andere Lösung. Diese war die einzige, die arbeitete mit einer UISearchController.
Objective-C: [self.navigationController.navigationBar setValue:@(JA) forKeyPath:@"hidesShadow"];
InformationsquelleAutor Valeriy
Einen Weg, um zu entfernen, den Haaransatz oben und unten von einem UISearchBar ist, ersetzen Sie das Hintergrundbild mit einer dehnbaren, dass nicht, dass die dünne Grenze. Machen Sie einfach eine quadratische png mit der Farbe Ihrer Wahl, dann:
Da der hintergrund ist solide, Sie können ziemlich viel was auch immer Werte, die Sie möchten für die Einschübe.
InformationsquelleAutor DobBobolina
Für diejenigen, die interessiert, wie das umzusetzen, "abenteuerlich" - Ansatz von @Leo Natan, ich habe den Beispiel-code in meine Antwort auf die ähnliche Frage.
InformationsquelleAutor Serhii Yakovenko