mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
remove locationOnScreen usage
This commit is contained in:
2
tns-core-modules/ui/core/view/view.d.ts
vendored
2
tns-core-modules/ui/core/view/view.d.ts
vendored
@@ -709,7 +709,7 @@ export abstract class View extends ViewBase {
|
|||||||
*/
|
*/
|
||||||
export class ContainerView extends View {
|
export class ContainerView extends View {
|
||||||
/**
|
/**
|
||||||
* Instruct container view to expand the safe area. This property is iOS specific. Default value: true
|
* Instruct container view to expand beyond the safe area. This property is iOS specific. Default value: true
|
||||||
*/
|
*/
|
||||||
public iosExpandSafeArea: boolean;
|
public iosExpandSafeArea: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -233,41 +233,35 @@ export class View extends ViewCommon {
|
|||||||
const adjustedFrame = ios.getFrameFromPosition(position, insets);
|
const adjustedFrame = ios.getFrameFromPosition(position, insets);
|
||||||
return adjustedFrame;
|
return adjustedFrame;
|
||||||
}
|
}
|
||||||
} else {
|
} else if (this.nativeViewProtected && this.nativeViewProtected.window) {
|
||||||
const locationOnScreen = this.getLocationOnScreen();
|
const parentWithController = ios.getParentWithViewController(this);
|
||||||
|
const safeArea = parentWithController.viewController.view.safeAreaLayoutGuide.layoutFrame;
|
||||||
|
const fullscreen = parentWithController.viewController.view.frame;
|
||||||
|
|
||||||
if (locationOnScreen) {
|
const position = ios.getPositionFromFrame(frame);
|
||||||
const parentWithController = ios.getParentWithViewController(this);
|
const safeAreaPosition = ios.getPositionFromFrame(safeArea);
|
||||||
const safeArea = parentWithController.viewController.view.safeAreaLayoutGuide.layoutFrame;
|
const fullscreenPosition = ios.getPositionFromFrame(fullscreen);
|
||||||
const fullscreen = parentWithController.viewController.view.frame;
|
|
||||||
const onScreenLeft = layout.round(layout.toDevicePixels(locationOnScreen.x));
|
|
||||||
const onScreenTop = layout.round(layout.toDevicePixels(locationOnScreen.y));
|
|
||||||
|
|
||||||
const position = ios.getPositionFromFrame(frame);
|
const adjustedPosition = position;
|
||||||
const safeAreaPosition = ios.getPositionFromFrame(safeArea);
|
|
||||||
const fullscreenPosition = ios.getPositionFromFrame(fullscreen);
|
|
||||||
|
|
||||||
const adjustedPosition = position;
|
if (position.left && position.left <= safeAreaPosition.left) {
|
||||||
|
adjustedPosition.left = fullscreenPosition.left;
|
||||||
if (position.left && onScreenLeft <= safeAreaPosition.left) {
|
|
||||||
adjustedPosition.left = fullscreenPosition.left;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (position.top && onScreenTop <= safeAreaPosition.top) {
|
|
||||||
adjustedPosition.top = fullscreenPosition.top;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (position.right < fullscreenPosition.right && position.right >= safeAreaPosition.right) {
|
|
||||||
adjustedPosition.right = fullscreenPosition.right;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (position.bottom < fullscreenPosition.bottom && position.bottom >= safeAreaPosition.bottom) {
|
|
||||||
adjustedPosition.bottom = fullscreenPosition.bottom;
|
|
||||||
}
|
|
||||||
|
|
||||||
const adjustedFrame = CGRectMake(layout.toDeviceIndependentPixels(adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.top), layout.toDeviceIndependentPixels(adjustedPosition.right - adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.bottom - adjustedPosition.top));
|
|
||||||
return adjustedFrame;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (position.top && position.top <= safeAreaPosition.top) {
|
||||||
|
adjustedPosition.top = fullscreenPosition.top;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (position.right < fullscreenPosition.right && position.right >= safeAreaPosition.right) {
|
||||||
|
adjustedPosition.right = fullscreenPosition.right;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (position.bottom < fullscreenPosition.bottom && position.bottom >= safeAreaPosition.bottom) {
|
||||||
|
adjustedPosition.bottom = fullscreenPosition.bottom;
|
||||||
|
}
|
||||||
|
|
||||||
|
const adjustedFrame = CGRectMake(layout.toDeviceIndependentPixels(adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.top), layout.toDeviceIndependentPixels(adjustedPosition.right - adjustedPosition.left), layout.toDeviceIndependentPixels(adjustedPosition.bottom - adjustedPosition.top));
|
||||||
|
return adjustedFrame;
|
||||||
}
|
}
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
|||||||
Reference in New Issue
Block a user