Wenn ich die Farbe der Navigationsleiste mit "navigationController? .NavigationBar.barTintColor" einstelle, unterscheidet sie sich von der eingestellten Farbe.
Ich habe die Navigationsfarbe sowie die Haupthintergrundfarbe entworfen. Wenn ich jedoch "navigationController? .NavigationBar.barTintColor" auf dieselbe Farbe wie den Haupthintergrund einstelle, ist die tatsächlich angezeigte Navigation etwas heller.
Es wurde durch NavigationBar.isTranslucent verursacht.
NavigationBar.isTranslucent
ist ein Wert, der die Transparenz der Navigationsleiste angibt. Wenn Sie kein Bild in der Navigationsleiste festgelegt haben, ist die Standardeinstellung "true" und durchscheinend. Wenn Sie nicht durchscheinend sein möchten, können Sie diesen Wert auf "false" setzen.
** Auszug **
If the navigation bar doesn't have a custom background image, or if any pixel of the background image has an alpha value of less than 1.0, the default value of this property is true. If the background image is completely opaque, the default value of this property is false. If you set this property to true and the custom background image is completely opaque, UIKit applies a system-defined opacity of less than 1.0 to the image. If you set this property to false and the background image is not opaque, UIKit adds an opaque backdrop.
AppDelegate.swift
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
UINavigationBar.appearance().isTranslucent = false
return true
}
Wenn Sie "NavigationBar.isTranslucent" auf "false" setzen, wird die Suchleiste nach unten verschoben, wenn Sie sich auf den in der Navigationsleiste festgelegten "UISearchController" konzentrieren. In diesem Fall können Sie das Problem lösen, indem Sie die folgende Implementierung in Controller schreiben.
Controller.swift
extendedLayoutIncludesOpaqueBars = true
Recommended Posts