From 815369b708890009f41c7d92443eb8201b586c86 Mon Sep 17 00:00:00 2001 From: Martin Yankov Date: Tue, 25 Sep 2018 15:47:05 +0300 Subject: [PATCH] fix scrollview as root of tabview --- .../scroll-view-safe-area-tests.ts | 11 +++----- tns-core-modules/ui/core/view/view.ios.ts | 27 +++++++++++-------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/tests/app/ui/scroll-view/scroll-view-safe-area-tests.ts b/tests/app/ui/scroll-view/scroll-view-safe-area-tests.ts index e0893929b..6a9baa425 100644 --- a/tests/app/ui/scroll-view/scroll-view-safe-area-tests.ts +++ b/tests/app/ui/scroll-view/scroll-view-safe-area-tests.ts @@ -69,8 +69,8 @@ class ScrollLayoutSafeAreaTest extends UITest { equal(b, platform.screen.mainScreen.heightPixels, `${scrollView}.bottom - actual:${b}; expected: ${platform.screen.mainScreen.heightPixels}`); } - private scroll_view_in_full_screen_test(pageOptions?: helper.PageOptions, sample?: string) { - const snippet = sample || ` + private scroll_view_in_full_screen_test(pageOptions?: helper.PageOptions) { + const snippet = ` `; @@ -97,12 +97,7 @@ class ScrollLayoutSafeAreaTest extends UITest { } public test_scroll_view_in_full_screen_tab_bar() { - const snippet = ` - - - - `; - this.scroll_view_in_full_screen_test({ tabBar: true }, snippet); + this.scroll_view_in_full_screen_test({ tabBar: true }); } private scroll_view_children_components_in_safe_area(pageOptions?: helper.PageOptions) { diff --git a/tns-core-modules/ui/core/view/view.ios.ts b/tns-core-modules/ui/core/view/view.ios.ts index 485d25f9d..51cb53387 100644 --- a/tns-core-modules/ui/core/view/view.ios.ts +++ b/tns-core-modules/ui/core/view/view.ios.ts @@ -817,12 +817,8 @@ export namespace ios { } function getAvailableSpaceFromParent(view: View): { safeArea: CGRect, fullscreen: CGRect } { - // Search for view and parents with ViewController or parents with UIScrollView parent to get their content size. - if (view && !view.viewController) { - view = view.parent as View; - while (view && !view.viewController && !(view.nativeViewProtected instanceof UIScrollView)) { - view = view.parent as View; - } + if (!view) { + return; } let fullscreen = null; @@ -832,12 +828,21 @@ export namespace ios { const nativeView = view.viewController.view; safeArea = nativeView.safeAreaLayoutGuide.layoutFrame; fullscreen = nativeView.frame; - } + } else { + let parent = view.parent as View; + while (parent && !parent.viewController && !(parent.nativeViewProtected instanceof UIScrollView)) { + parent = parent.parent as View; + } - if (view.nativeViewProtected instanceof UIScrollView) { - const nativeView = view.nativeViewProtected; - safeArea = nativeView.safeAreaLayoutGuide.layoutFrame; - fullscreen = CGRectMake(0, 0, nativeView.contentSize.width, nativeView.contentSize.height); + if (parent.nativeViewProtected instanceof UIScrollView) { + const nativeView = parent.nativeViewProtected; + safeArea = nativeView.safeAreaLayoutGuide.layoutFrame; + fullscreen = CGRectMake(0, 0, nativeView.contentSize.width, nativeView.contentSize.height); + } else if (parent.viewController) { + const nativeView = parent.viewController.view; + safeArea = nativeView.safeAreaLayoutGuide.layoutFrame; + fullscreen = nativeView.frame; + } } return { safeArea: safeArea, fullscreen: fullscreen}