From 120230c297ed92e2c4513f7444956bd0ea733ca8 Mon Sep 17 00:00:00 2001 From: Hristo Hristov Date: Fri, 31 Mar 2017 16:18:12 +0300 Subject: [PATCH] ios cornder radius is rendered as circle now (#3915) * ios cornder radius is rendered as circle now * fix failing test --- tests/app/ui/view/view-tests-common.ts | 1 + tns-core-modules/ui/styling/background.ios.ts | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/tests/app/ui/view/view-tests-common.ts b/tests/app/ui/view/view-tests-common.ts index 92f43ed30..2dc1fd4ce 100644 --- a/tests/app/ui/view/view-tests-common.ts +++ b/tests/app/ui/view/view-tests-common.ts @@ -818,6 +818,7 @@ export function testBorderWidth() { export function testCornerRadius() { helper.buildUIAndRunTest(_createLabelWithBorder(), function (views: Array) { const lbl = views[0]; + TKUnit.waitUntilReady(() => lbl.isLayoutValid); const expectedValue = lbl.borderRadius * utils.layout.getDisplayDensity(); const actualValue = definition.getUniformNativeCornerRadius(lbl); TKUnit.assertAreClose(actualValue, expectedValue, 0.01, "borderRadius"); diff --git a/tns-core-modules/ui/styling/background.ios.ts b/tns-core-modules/ui/styling/background.ios.ts index 9345a6f40..825233fe8 100644 --- a/tns-core-modules/ui/styling/background.ios.ts +++ b/tns-core-modules/ui/styling/background.ios.ts @@ -37,7 +37,9 @@ export module ios { const borderColor = background.getUniformBorderColor(); layer.borderColor = !borderColor ? undefined : borderColor.ios.CGColor; layer.borderWidth = layout.toDeviceIndependentPixels(background.getUniformBorderWidth()); - layer.cornerRadius = layout.toDeviceIndependentPixels(background.getUniformBorderRadius()); + const renderSize = view.getActualSize() || { width: 0, height: 0 }; + const cornerRadius = layout.toDeviceIndependentPixels(background.getUniformBorderRadius()); + layer.cornerRadius = Math.min(Math.min(renderSize.width / 2, renderSize.height / 2), cornerRadius); } else { drawNonUniformBorders(nativeView, background);