diff --git a/apps/automated/src/color/color-tests.ts b/apps/automated/src/color/color-tests-common.ts similarity index 100% rename from apps/automated/src/color/color-tests.ts rename to apps/automated/src/color/color-tests-common.ts diff --git a/apps/automated/src/color/color-tests.android.ts b/apps/automated/src/color/color-tests.android.ts new file mode 100644 index 000000000..9a0dc8f00 --- /dev/null +++ b/apps/automated/src/color/color-tests.android.ts @@ -0,0 +1 @@ +export * from './color-tests-common'; diff --git a/apps/automated/src/color/color-tests.d.ts b/apps/automated/src/color/color-tests.d.ts new file mode 100644 index 000000000..c87d503ad --- /dev/null +++ b/apps/automated/src/color/color-tests.d.ts @@ -0,0 +1,2 @@ +import * as android from './color-tests.android'; +import * as iOS from './color-tests.ios'; diff --git a/apps/automated/src/color/color-tests.ios.ts b/apps/automated/src/color/color-tests.ios.ts new file mode 100644 index 000000000..228776da3 --- /dev/null +++ b/apps/automated/src/color/color-tests.ios.ts @@ -0,0 +1,20 @@ +// >> color-require +import * as colorModule from '@nativescript/core/color'; +const { Color } = colorModule; +// << color-require +import * as TKUnit from '../tk-unit'; + +export * from './color-tests-common'; + +export function testFromIosColorWhite () { + // >> color-ios-white + // Creates the white color + const color = Color.fromIosColor(UIColor.whiteColor); + // << color-ios-white + TKUnit.assertEqual(color.a, 255, 'Color.a not properly parsed'); + TKUnit.assertEqual(color.r, 255, 'Color.r not properly parsed'); + TKUnit.assertEqual(color.g, 255, 'Color.g not properly parsed'); + TKUnit.assertEqual(color.b, 255, 'Color.b not properly parsed'); + TKUnit.assertEqual(color.hex, '#FFFFFF', 'Color.hex not properly parsed'); + TKUnit.assertEqual(color.argb, 0xffffffff, 'Color.argb not properly parsed'); +}; diff --git a/packages/core/color/index.ios.ts b/packages/core/color/index.ios.ts index 9440019f6..6789a480e 100644 --- a/packages/core/color/index.ios.ts +++ b/packages/core/color/index.ios.ts @@ -13,8 +13,11 @@ export class Color extends common.Color { } public static fromIosColor(value: UIColor): Color { - const rgba = CGColorGetComponents(value.CGColor); - - return new Color(Math.round(rgba[3] * 255), Math.round(rgba[0] * 255), Math.round(rgba[1] * 255), Math.round(rgba[2] * 255)); + const r = new interop.Reference(); + const g = new interop.Reference(); + const b = new interop.Reference(); + const a = new interop.Reference(); + value.getRedGreenBlueAlpha(r, g, b, a); + return new Color(Math.round(a.value * 255), Math.round(r.value * 255), Math.round(g.value * 255), Math.round(b.value * 255)); } }