UIView使用CGAffineTransformMakeScale缩放为0

Ron*_*iew 10 iphone cocoa-touch objective-c

是否可以使用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];
Run Code Online (Sandbox Code Playgroud)

Jas*_*ris 10

很多时候,底层框架需要反转您的变换矩阵.矩阵的逆是一些矩阵M',使得矩阵M和逆矩阵M'的乘积是识别矩阵1.

1 = M*M'

零矩阵没有逆,因此错误消息.


Ben*_*ieb 8

我不确定这样做是否可行; 你将开始遇到被零除的问题.如果您尝试这样做,您将创建一个如下所示的转换:

   0  0  0
   0  0  0
   0  0  1

当应用于任何其他变换时,将产生上述变换.

为什么不隐藏视图(如果你想将视图缩小)或将缩放系数设置为0.001(如果你想缩放它)?