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,16 +406,39 @@ export class ActionBar extends ActionBarBase {
} }
private updateFlatness(navBar: UINavigationBar) { private updateFlatness(navBar: UINavigationBar) {
if (this.flat) { if (this.flat) {
if (majorVersion >= 15) {
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.setBackgroundImageForBarMetrics(UIImage.new(), UIBarMetrics.Default);
navBar.shadowImage = UIImage.new(); navBar.shadowImage = UIImage.new();
navBar.translucent = false; navBar.translucent = false;
}
} else {
if (majorVersion >= 15) {
if(navBar.standardAppearance){ // Not flat and never been set do nothing.
const appearance = navBar.standardAppearance;
appearance.shadowColor = UINavigationBarAppearance.new().shadowColor;
navBar.standardAppearance = appearance;
navBar.compactAppearance = appearance;
navBar.scrollEdgeAppearance = appearance;
}
} else { } else {
navBar.setBackgroundImageForBarMetrics(null, null); navBar.setBackgroundImageForBarMetrics(null, null);
navBar.shadowImage = null; navBar.shadowImage = null;
navBar.translucent = true; navBar.translucent = true;
} }
} }
}
public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number) { public onMeasure(widthMeasureSpec: number, heightMeasureSpec: number) {
const width = layout.getMeasureSpecSize(widthMeasureSpec); const width = layout.getMeasureSpecSize(widthMeasureSpec);