diff --git a/apps/app/ui-tests-app/issues/issue-6439.css b/apps/app/ui-tests-app/issues/issue-6439.css
new file mode 100644
index 000000000..95f4f5a0d
--- /dev/null
+++ b/apps/app/ui-tests-app/issues/issue-6439.css
@@ -0,0 +1,8 @@
+.hr-light {
+ height: 1;
+ background-color: gray;
+}
+
+.title {
+ height: 200;
+}
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/issues/issue-6439.xml b/apps/app/ui-tests-app/issues/issue-6439.xml
new file mode 100644
index 000000000..c59847062
--- /dev/null
+++ b/apps/app/ui-tests-app/issues/issue-6439.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/issues/issue-ng-repo-1599.css b/apps/app/ui-tests-app/issues/issue-ng-repo-1599.css
new file mode 100644
index 000000000..421162395
--- /dev/null
+++ b/apps/app/ui-tests-app/issues/issue-ng-repo-1599.css
@@ -0,0 +1,35 @@
+.page {
+ padding: 20;
+}
+
+.title {
+ font-weight: bold;
+}
+
+.list-items {
+ border-radius: 10;
+ background-repeat: no-repeat;
+ background-size: cover;
+ background-position: center top;
+ background-color: black;
+ margin-top: 20;
+}
+
+.item-title {
+ color: white;
+ vertical-align: bottom;
+ font-size: 30;
+ padding: 180 20 20;
+ font-weight: 600;
+}
+
+.list-item__row {
+ padding-left: 20;
+}
+
+.list-item {
+ border-radius: 4;
+ background-color: white;
+ margin: 0 10 20 0;
+ padding: 5 10;
+}
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/issues/issue-ng-repo-1599.xml b/apps/app/ui-tests-app/issues/issue-ng-repo-1599.xml
new file mode 100644
index 000000000..88d363d5d
--- /dev/null
+++ b/apps/app/ui-tests-app/issues/issue-ng-repo-1599.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/issues/main-page.ts b/apps/app/ui-tests-app/issues/main-page.ts
index fa2dec103..82f8ee5fc 100644
--- a/apps/app/ui-tests-app/issues/main-page.ts
+++ b/apps/app/ui-tests-app/issues/main-page.ts
@@ -27,6 +27,8 @@ export function loadExamples() {
examples.set("3354-ios", "issues/issue-3354");
examples.set("4450", "issues/issue-4450");
examples.set("5274", "issues/issue-5274");
+ examples.set("ng-repo-1599", "issues/issue-ng-repo-1599");
+ examples.set("6439", "issues/issue-6439");
return examples;
}
\ No newline at end of file
diff --git a/apps/app/ui-tests-app/scroll-view/safe-area-sub-element.xml b/apps/app/ui-tests-app/scroll-view/safe-area-sub-element.xml
index febf79f0e..860aca976 100644
--- a/apps/app/ui-tests-app/scroll-view/safe-area-sub-element.xml
+++ b/apps/app/ui-tests-app/scroll-view/safe-area-sub-element.xml
@@ -6,7 +6,7 @@
-
+
diff --git a/tns-core-modules/ui/core/view/view.ios.ts b/tns-core-modules/ui/core/view/view.ios.ts
index fe4e125d2..499061701 100644
--- a/tns-core-modules/ui/core/view/view.ios.ts
+++ b/tns-core-modules/ui/core/view/view.ios.ts
@@ -798,11 +798,11 @@ export namespace ios {
}
if (inWindowRight < fullscreenPosition.right && inWindowRight >= safeAreaPosition.right + fullscreenPosition.left) {
- adjustedPosition.right = fullscreenPosition.right - fullscreenPosition.left;
+ adjustedPosition.right += fullscreenPosition.right - inWindowRight;
}
if (inWindowBottom < fullscreenPosition.bottom && inWindowBottom >= safeAreaPosition.bottom + fullscreenPosition.top) {
- adjustedPosition.bottom = fullscreenPosition.bottom - fullscreenPosition.top;
+ adjustedPosition.bottom += fullscreenPosition.bottom - inWindowBottom;
}
const adjustedFrame = CGRectMake(layout.toDeviceIndependentPixels(adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.top), layout.toDeviceIndependentPixels(adjustedPosition.right - adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.bottom - adjustedPosition.top));
@@ -853,7 +853,8 @@ export namespace ios {
if (parent.nativeViewProtected instanceof UIScrollView) {
const nativeView = parent.nativeViewProtected;
- safeArea = nativeView.safeAreaLayoutGuide.layoutFrame;
+ const insets = nativeView.safeAreaInsets;
+ safeArea = CGRectMake(insets.left, insets.top, nativeView.contentSize.width - insets.left - insets.right, nativeView.contentSize.height - insets.top - insets.bottom);
fullscreen = CGRectMake(0, 0, nativeView.contentSize.width, nativeView.contentSize.height);
} else if (parent.viewController) {
const nativeView = parent.viewController.view;