mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-08-17 21:01:34 +08:00
Scaling to zero should be avoided in iOS as the underlying system won't be able to decompose the resulting affine matrix, but in cases of 0 we were setting it to 1, we will now set it to 1e-6.
This commit is contained in:
@ -234,13 +234,13 @@ export class View extends ViewCommon {
|
|||||||
public updateNativeTransform() {
|
public updateNativeTransform() {
|
||||||
let translateX = layout.toDeviceIndependentPixels(Length.toDevicePixels(this.translateX || 0, 0));
|
let translateX = layout.toDeviceIndependentPixels(Length.toDevicePixels(this.translateX || 0, 0));
|
||||||
let translateY = layout.toDeviceIndependentPixels(Length.toDevicePixels(this.translateY || 0, 0));
|
let translateY = layout.toDeviceIndependentPixels(Length.toDevicePixels(this.translateY || 0, 0));
|
||||||
let scaleX = this.scaleX || 1;
|
let scaleX = this.scaleX || 1e-6;
|
||||||
let scaleY = this.scaleY || 1;
|
let scaleY = this.scaleY || 1e-6;
|
||||||
let rotate = this.rotate || 0;
|
let rotate = this.rotate || 0;
|
||||||
let newTransform = CGAffineTransformIdentity;
|
let newTransform = CGAffineTransformIdentity;
|
||||||
newTransform = CGAffineTransformTranslate(newTransform, translateX, translateY);
|
newTransform = CGAffineTransformTranslate(newTransform, translateX, translateY);
|
||||||
newTransform = CGAffineTransformRotate(newTransform, rotate * Math.PI / 180);
|
newTransform = CGAffineTransformRotate(newTransform, rotate * Math.PI / 180);
|
||||||
newTransform = CGAffineTransformScale(newTransform, scaleX === 0 ? 0.001 : scaleX, scaleY === 0 ? 0.001 : scaleY);
|
newTransform = CGAffineTransformScale(newTransform, scaleX, scaleY);
|
||||||
if (!CGAffineTransformEqualToTransform(this.nativeView.transform, newTransform)) {
|
if (!CGAffineTransformEqualToTransform(this.nativeView.transform, newTransform)) {
|
||||||
let updateSuspended = this._isPresentationLayerUpdateSuspeneded();
|
let updateSuspended = this._isPresentationLayerUpdateSuspeneded();
|
||||||
if (!updateSuspended) {
|
if (!updateSuspended) {
|
||||||
|
Reference in New Issue
Block a user