fix(ios): flat property using new appearance api (#9558)

This commit is contained in:
Jason Cassidy
2021-09-20 19:12:08 +01:00
committed by GitHub
parent f0ffb21626
commit 183b4d4b10

View File

@@ -406,14 +406,37 @@ export class ActionBar extends ActionBarBase {
} }
private updateFlatness(navBar: UINavigationBar) { private updateFlatness(navBar: UINavigationBar) {
if (this.flat) { if (this.flat) {
navBar.setBackgroundImageForBarMetrics(UIImage.new(), UIBarMetrics.Default);
navBar.shadowImage = UIImage.new(); if (majorVersion >= 15) {
navBar.translucent = false; const appearance = navBar.standardAppearance ?? UINavigationBarAppearance.new();
appearance.shadowColor = UIColor.clearColor;
navBar.standardAppearance = appearance;
navBar.compactAppearance = appearance;
navBar.scrollEdgeAppearance = appearance;
} else {
navBar.setBackgroundImageForBarMetrics(UIImage.new(), UIBarMetrics.Default);
navBar.shadowImage = UIImage.new();
navBar.translucent = false;
}
} else { } else {
navBar.setBackgroundImageForBarMetrics(null, null); if (majorVersion >= 15) {
navBar.shadowImage = null; if(navBar.standardAppearance){ // Not flat and never been set do nothing.
navBar.translucent = true; const appearance = navBar.standardAppearance;
appearance.shadowColor = UINavigationBarAppearance.new().shadowColor;
navBar.standardAppearance = appearance;
navBar.compactAppearance = appearance;
navBar.scrollEdgeAppearance = appearance;
}
} else {
navBar.setBackgroundImageForBarMetrics(null, null);
navBar.shadowImage = null;
navBar.translucent = true;
}
} }
} }