@nativescript/core 9.0.0-alpha.13-next-11-07-2025-19157037524 → 9.0.0-alpha.13-next-11-07-2025-19181190681
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/ui/switch/index.ios.d.ts +1 -0
- package/ui/switch/index.ios.js +61 -11
- package/ui/switch/index.ios.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nativescript/core",
|
|
3
|
-
"version": "9.0.0-alpha.13-next-11-07-2025-
|
|
3
|
+
"version": "9.0.0-alpha.13-next-11-07-2025-19181190681",
|
|
4
4
|
"description": "A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index",
|
package/ui/switch/index.ios.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare class Switch extends SwitchBase {
|
|
|
15
15
|
[offBackgroundColorProperty.setNative]: (value: Color | UIColor) => void;
|
|
16
16
|
nativeViewProtected: UISwitch;
|
|
17
17
|
private _handler;
|
|
18
|
+
private _toggleColorTimer;
|
|
18
19
|
constructor();
|
|
19
20
|
createNativeView(): UISwitch;
|
|
20
21
|
initNativeView(): void;
|
package/ui/switch/index.ios.js
CHANGED
|
@@ -28,6 +28,8 @@ var SwitchChangeHandlerImpl = /** @class */ (function (_super) {
|
|
|
28
28
|
export class Switch extends SwitchBase {
|
|
29
29
|
constructor() {
|
|
30
30
|
super();
|
|
31
|
+
// Defer color updates while iOS 26+ "glass" toggle animation runs
|
|
32
|
+
this._toggleColorTimer = null;
|
|
31
33
|
}
|
|
32
34
|
createNativeView() {
|
|
33
35
|
return UISwitch.new();
|
|
@@ -40,20 +42,56 @@ export class Switch extends SwitchBase {
|
|
|
40
42
|
}
|
|
41
43
|
disposeNativeView() {
|
|
42
44
|
this._handler = null;
|
|
45
|
+
if (this._toggleColorTimer) {
|
|
46
|
+
clearTimeout(this._toggleColorTimer);
|
|
47
|
+
this._toggleColorTimer = null;
|
|
48
|
+
}
|
|
43
49
|
super.disposeNativeView();
|
|
44
50
|
}
|
|
45
51
|
setNativeBackgroundColor(value) {
|
|
52
|
+
const native = this.nativeViewProtected;
|
|
46
53
|
if (value) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
const nativeValue = value instanceof Color ? value.ios : value;
|
|
55
|
+
// Keep the legacy behavior for on/off colors
|
|
56
|
+
native.onTintColor = nativeValue;
|
|
57
|
+
native.tintColor = nativeValue;
|
|
58
|
+
native.backgroundColor = nativeValue;
|
|
59
|
+
// Since iOS 16+ the control no longer clips its background by default.
|
|
60
|
+
// Ensure the track-shaped background doesn't bleed outside the control bounds.
|
|
61
|
+
if (SDK_VERSION >= 16) {
|
|
62
|
+
native.clipsToBounds = true;
|
|
63
|
+
native.layer.masksToBounds = true;
|
|
64
|
+
}
|
|
65
|
+
// Corner radius must be based on the final laid out size; use bounds first,
|
|
66
|
+
// then fall back to frame. If size isn't known yet, update on the next tick.
|
|
67
|
+
const height = native.bounds?.size?.height || native.frame?.size?.height || 0;
|
|
68
|
+
if (height > 0) {
|
|
69
|
+
native.layer.cornerRadius = height / 2;
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
// Defer until after layout
|
|
73
|
+
setTimeout(() => {
|
|
74
|
+
const n = this.nativeViewProtected;
|
|
75
|
+
if (!n) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const h = n.bounds?.size?.height || n.frame?.size?.height || 0;
|
|
79
|
+
if (h > 0) {
|
|
80
|
+
n.layer.cornerRadius = h / 2;
|
|
81
|
+
}
|
|
82
|
+
}, 0);
|
|
83
|
+
}
|
|
51
84
|
}
|
|
52
85
|
else {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
86
|
+
native.onTintColor = null;
|
|
87
|
+
native.tintColor = null;
|
|
88
|
+
native.backgroundColor = null;
|
|
89
|
+
native.layer.cornerRadius = 0;
|
|
90
|
+
if (SDK_VERSION >= 16) {
|
|
91
|
+
// Restore default clipping behavior
|
|
92
|
+
native.clipsToBounds = false;
|
|
93
|
+
native.layer.masksToBounds = false;
|
|
94
|
+
}
|
|
57
95
|
}
|
|
58
96
|
}
|
|
59
97
|
_onCheckedPropertyChanged(newValue) {
|
|
@@ -63,11 +101,23 @@ export class Switch extends SwitchBase {
|
|
|
63
101
|
if (SDK_VERSION >= 13) {
|
|
64
102
|
super._onCheckedPropertyChanged(newValue);
|
|
65
103
|
if (this.offBackgroundColor) {
|
|
66
|
-
|
|
67
|
-
|
|
104
|
+
const nextColor = !newValue ? this.offBackgroundColor : this.backgroundColor instanceof Color ? this.backgroundColor : new Color(this.backgroundColor);
|
|
105
|
+
// On iOS 26+, coordinate with the system's switch animation:
|
|
106
|
+
// delay applying track color until the toggle animation finishes to avoid a janky mid-animation recolor.
|
|
107
|
+
if (SDK_VERSION >= 26) {
|
|
108
|
+
if (this._toggleColorTimer) {
|
|
109
|
+
clearTimeout(this._toggleColorTimer);
|
|
110
|
+
}
|
|
111
|
+
this._toggleColorTimer = setTimeout(() => {
|
|
112
|
+
const ANIMATION_DELAY_MS = 0.26; // approx. system toggle duration
|
|
113
|
+
UIView.animateWithDurationAnimations(ANIMATION_DELAY_MS, () => {
|
|
114
|
+
this._toggleColorTimer = null;
|
|
115
|
+
this.setNativeBackgroundColor(nextColor);
|
|
116
|
+
});
|
|
117
|
+
}, 0);
|
|
68
118
|
}
|
|
69
119
|
else {
|
|
70
|
-
this.setNativeBackgroundColor(
|
|
120
|
+
this.setNativeBackgroundColor(nextColor);
|
|
71
121
|
}
|
|
72
122
|
}
|
|
73
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/switch/index.ios.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AACjH,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,cAAc,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;AAyBhC,MAAM,OAAO,MAAO,SAAQ,UAAU;
|
|
1
|
+
{"version":3,"file":"index.ios.js","sourceRoot":"","sources":["../../../../../packages/core/ui/switch/index.ios.ts"],"names":[],"mappings":"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"}
|