gpt4 book ai didi

iphone - <错误> : CGAffineTransformInvert: singular matrix

转载 作者:可可西里 更新时间:2023-11-01 03:24:32 26 4
gpt4 key购买 nike

我正在尝试在 View 上制作此动画,将其缩放到 (0,0),然后使用 CGRectMake 方法移动此帧并将其缩放回 (1,1)。所以我用下面的代码来做到这一点

-(void)startWalkAnimationStartWalkingBtnViewScaleToZero{
CGAffineTransform transform = StartWalkBtnView.transform;

StartWalkBtnView.transform=CGAffineTransformScale(transform,1.0f, 1.0f);
[UIView animateWithDuration: 0.7
delay: 0.6
options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
animations:^{ StartWalkBtnView.transform = CGAffineTransformScale(transform, 0.0f, 0.0f);
}
completion:^(BOOL finished){
[UIView animateWithDuration:0.0
delay:0.0
options: UIViewAnimationOptionCurveEaseIn
animations:^{
StartWalkBtnView.frame=CGRectMake(92, 270, 120, 121);
}
completion:^(BOOL finished){

StartWalkBtnView.transform=CGAffineTransformScale(transform,0.0f, 0.0f);
[UIView animateWithDuration: 0.7
delay: 0.8
options: (UIViewAnimationOptionCurveLinear | UIViewAnimationOptionAllowUserInteraction)
animations:^{ StartWalkBtnView.transform = CGAffineTransformScale(transform, 1.0f, 1.0f);
}
completion:^(BOOL finished){}
];
}];
}
];
}

但是在尝试运行此动画后,我在控制台中收到以下错误。

Jun 17 12:02:49 Kareem.local MyAppName[3157] <Error>: CGAffineTransformInvert: singular matrix.

我在谷歌上搜索了太多次,并尝试了提供的所有解决方案(缩放接近零值,...)但没有任何效果,有没有人有解决这个问题的想法。感谢帮助

更新:我发现问题在以下行:

StartWalkBtnView.frame=CGRectMake(92, 270, 120, 121);

但实际上我不知道如何解决这个问题,但是当我删除这一行时它缩放到零然后从零正常返回,没有任何错误

最佳答案

您收到此错误是因为缩放矩阵的行列式为零。当您尝试将转换更改为比例 1.0 时,Core Graphics 会尝试找到您之前转换的逆矩阵以将转换返回到单位矩阵。对于行列式 0,这会导致不可逆矩阵,这就是您收到此错误的原因。不要将比例转换为 0.0。

你确定你检查了你现在设置为 0.0 的两个缩放中接近零的值吗?

编辑(答案):

  • 因此,来自 Raj的评论,为了避免这个错误,你必须尝试一个不等于零的值(但非常接近于零)。

也就是说,代替:

(transform,0.0f, 0.0f);

尝试:

(transform,0.01f, 0.01f);

(transform,0.001f, 0.001f);

关于iphone - <错误> : CGAffineTransformInvert: singular matrix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17145114/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com