diff --git a/e2e/ui-tests-app/app/tabs/frame-in-tabs-inner-page-1.xml b/e2e/ui-tests-app/app/tabs/frame-in-tabs-inner-page-1.xml
index f0c7c0c06..ab97e83dc 100644
--- a/e2e/ui-tests-app/app/tabs/frame-in-tabs-inner-page-1.xml
+++ b/e2e/ui-tests-app/app/tabs/frame-in-tabs-inner-page-1.xml
@@ -1,3 +1,12 @@
-
-
-
\ No newline at end of file
+
+
+
+
+
+
+
diff --git a/e2e/ui-tests-app/app/tabs/frame-in-tabs-overflow.xml b/e2e/ui-tests-app/app/tabs/frame-in-tabs-overflow.xml
new file mode 100644
index 000000000..e0df8bd11
--- /dev/null
+++ b/e2e/ui-tests-app/app/tabs/frame-in-tabs-overflow.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/e2e/ui-tests-app/app/tabs/main-page.ts b/e2e/ui-tests-app/app/tabs/main-page.ts
index bfee3c3ab..f81cb0866 100644
--- a/e2e/ui-tests-app/app/tabs/main-page.ts
+++ b/e2e/ui-tests-app/app/tabs/main-page.ts
@@ -33,6 +33,7 @@ export function loadExamples() {
examples.set("nested-bottom-navigation", "tabs/nested-bottom-navigation-page");
examples.set("custom-tabstrip", "tabs/custom-tabstrip-page");
examples.set("frame-in-tabs", "tabs/frame-in-tabs");
+ examples.set("frame-in-tabs-overflow", "tabs/frame-in-tabs-overflow");
examples.set("item-color", "tabs/item-color-page");
examples.set("dynamic-color-change", "tabs/dynamic-color-change-page");
diff --git a/nativescript-core/ui/tabs/tabs.ios.ts b/nativescript-core/ui/tabs/tabs.ios.ts
index 2f118e795..0b603dcb1 100644
--- a/nativescript-core/ui/tabs/tabs.ios.ts
+++ b/nativescript-core/ui/tabs/tabs.ios.ts
@@ -174,15 +174,16 @@ class UIPageViewControllerImpl extends UIPageViewController {
safeAreaInsetsTop = this.topLayoutGuide.length;
}
+ let conditionalSafeAreaBottom = owner.iosOverflowSafeArea ? safeAreaInsetsBottom : 0;
let scrollViewTop = 0;
- let scrollViewHeight = this.view.bounds.size.height;
+ let scrollViewHeight = this.view.bounds.size.height + conditionalSafeAreaBottom;
if (owner.tabStrip) {
const tabBarHeight = this.tabBar.frame.size.height;
let tabBarTop = safeAreaInsetsTop;
scrollViewTop = tabBarHeight;
- scrollViewHeight = this.view.bounds.size.height - tabBarHeight;
+ scrollViewHeight = this.view.bounds.size.height - tabBarHeight + conditionalSafeAreaBottom;
const tabsPosition = owner.tabsPosition;
if (tabsPosition === "bottom") {