是否可以使用CGAffineTransformMakeScale将UIView缩小为0(宽度和高度为0)?
view.transform = CGAffineTransformMakeScale(0.0f,0.0f);
为什么会抛出错误“<Error>: CGAffineTransformInvert: singular matrix.
”?
更新: 还有另一种将UIView缩小到0
的方法[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3];
view.frame = CGRectMake(view.center.x, view.center.y, 0, 0);
[UIView commitAnimations];
答案 0 :(得分:10)
很多时候,底层框架需要反转您的转换矩阵。矩阵的逆是一些矩阵M',使得矩阵M和逆矩阵M'的乘积是识别矩阵1。
1 = M * M'
零矩阵没有反转,因此出现错误信息。
答案 1 :(得分:8)
我不确定这样做是否可行;你将开始遇到被零除的问题。如果您尝试这样做,您将创建一个如下所示的转换:
0 0 0
0 0 0
0 0 1
当应用于任何其他变换时,将产生上述变换。
为什么不隐藏视图(如果你想要将视图缩小)或将缩放系数设置为0.001(如果你想缩放它)?
答案 2 :(得分:1)
CGAffineTransform transform = myView.transform;
myView.transform = CGAffineTransformScale(transform. 0.0f, 0.0f);
或内联整个事情。