mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-14 18:12:09 +08:00
fix(ios): additional safe area insets were miscalculated if already set (#9991)
This commit is contained in:

committed by
GitHub

parent
de1d47d600
commit
be6efc3067
@ -59,11 +59,17 @@ class UILayoutViewController extends UIViewController {
|
||||
|
||||
if (parent) {
|
||||
const parentPageInsetsTop = parent.nativeViewProtected.safeAreaInsets.top;
|
||||
const currentInsetsTop = this.view.safeAreaInsets.top;
|
||||
const additionalInsetsTop = Math.max(parentPageInsetsTop - currentInsetsTop, 0);
|
||||
|
||||
const parentPageInsetsBottom = parent.nativeViewProtected.safeAreaInsets.bottom;
|
||||
const currentInsetsBottom = this.view.safeAreaInsets.bottom;
|
||||
let currentInsetsTop = this.view.safeAreaInsets.top;
|
||||
let currentInsetsBottom = this.view.safeAreaInsets.bottom;
|
||||
|
||||
// Safe area insets include additional safe area insets too, so subtract old values
|
||||
if (this.additionalSafeAreaInsets) {
|
||||
currentInsetsTop -= this.additionalSafeAreaInsets.top;
|
||||
currentInsetsBottom -= this.additionalSafeAreaInsets.bottom;
|
||||
}
|
||||
|
||||
const additionalInsetsTop = Math.max(parentPageInsetsTop - currentInsetsTop, 0);
|
||||
const additionalInsetsBottom = Math.max(parentPageInsetsBottom - currentInsetsBottom, 0);
|
||||
|
||||
if (additionalInsetsTop > 0 || additionalInsetsBottom > 0) {
|
||||
|
@ -279,11 +279,17 @@ class UIViewControllerImpl extends UIViewController {
|
||||
|
||||
if (frameParent) {
|
||||
const parentPageInsetsTop = frameParent.nativeViewProtected.safeAreaInsets.top;
|
||||
const currentInsetsTop = this.view.safeAreaInsets.top;
|
||||
const additionalInsetsTop = Math.max(parentPageInsetsTop - currentInsetsTop, 0);
|
||||
|
||||
const parentPageInsetsBottom = frameParent.nativeViewProtected.safeAreaInsets.bottom;
|
||||
const currentInsetsBottom = this.view.safeAreaInsets.bottom;
|
||||
let currentInsetsTop = this.view.safeAreaInsets.top;
|
||||
let currentInsetsBottom = this.view.safeAreaInsets.bottom;
|
||||
|
||||
// Safe area insets include additional safe area insets too, so subtract old values
|
||||
if (this.additionalSafeAreaInsets) {
|
||||
currentInsetsTop -= this.additionalSafeAreaInsets.top;
|
||||
currentInsetsBottom -= this.additionalSafeAreaInsets.bottom;
|
||||
}
|
||||
|
||||
const additionalInsetsTop = Math.max(parentPageInsetsTop - currentInsetsTop, 0);
|
||||
const additionalInsetsBottom = Math.max(parentPageInsetsBottom - currentInsetsBottom, 0);
|
||||
|
||||
if (additionalInsetsTop > 0 || additionalInsetsBottom > 0) {
|
||||
|
Reference in New Issue
Block a user