From dfa208a54d4454ba26775bc5d11d00e252003c4c Mon Sep 17 00:00:00 2001 From: Martin Yankov Date: Tue, 23 Oct 2018 13:38:02 +0300 Subject: [PATCH] fix-next: apply ios safe area before transform (#6443) --- tns-core-modules/ui/core/view/view.ios.ts | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/tns-core-modules/ui/core/view/view.ios.ts b/tns-core-modules/ui/core/view/view.ios.ts index 523151c50..13abd0766 100644 --- a/tns-core-modules/ui/core/view/view.ios.ts +++ b/tns-core-modules/ui/core/view/view.ios.ts @@ -160,19 +160,24 @@ export class View extends ViewCommon { } this._cachedFrame = frame; let adjustedFrame = null; + let transform = null; if (this._hasTransfrom) { // Always set identity transform before setting frame; - const transform = nativeView.transform; + transform = nativeView.transform; nativeView.transform = CGAffineTransformIdentity; nativeView.frame = frame; - nativeView.transform = transform; } else { nativeView.frame = frame; - // apply safe area insets only if no transform is in place - adjustedFrame = this.applySafeAreaInsets(frame); - if (adjustedFrame) { - nativeView.frame = adjustedFrame; - } + } + + adjustedFrame = this.applySafeAreaInsets(frame); + if (adjustedFrame) { + nativeView.frame = adjustedFrame; + } + + if (this._hasTransfrom) { + // re-apply the transform after the frame is adjusted + nativeView.transform = transform; } const boundsOrigin = nativeView.bounds.origin;