Files
NativeScript/nativescript-core/utils/layout-helper/index.ios.ts
Nathan Walker da3c0b973d chore: format
2020-07-11 11:01:40 -07:00

49 lines
1.2 KiB
TypeScript

import { round, MODE_MASK } from "./layout-helper-common";
export * from "./layout-helper-common";
let mainScreenScale;
export function makeMeasureSpec(size: number, mode: number): number {
return (Math.round(Math.max(0, size)) & ~MODE_MASK) | (mode & MODE_MASK);
}
export function getDisplayDensity(): number {
return mainScreenScale;
}
export function toDevicePixels(value: number): number {
return value * mainScreenScale;
}
export function toDeviceIndependentPixels(value: number): number {
return value / mainScreenScale;
}
export function measureNativeView(
nativeView: any /* UIView */,
width: number,
widthMode: number,
height: number,
heightMode: number
): { width: number; height: number } {
const view = <UIView>nativeView;
const nativeSize = view.sizeThatFits({
width:
widthMode === 0 /* layout.UNSPECIFIED */
? Number.POSITIVE_INFINITY
: toDeviceIndependentPixels(width),
height:
heightMode === 0 /* layout.UNSPECIFIED */
? Number.POSITIVE_INFINITY
: toDeviceIndependentPixels(height),
});
nativeSize.width = round(toDevicePixels(nativeSize.width));
nativeSize.height = round(toDevicePixels(nativeSize.height));
return nativeSize;
}
mainScreenScale = UIScreen.mainScreen.scale;