CGAffineTransformInvert:奇异matrix

我偶尔会看到错误消息:

CGAffineTransformInvert: singular matrix 

在Xcode的日志区域。 这似乎发生(很less,幸运),当我捏在UIWebView内的网站的大小。 [商业网站,不是我自己的。]因为我没有在我的应用程序仿射变换,我想知道这是否可能是UIWebView的错误/function。 如果是这样,我可以忽略它,因为它似乎没有任何干扰?

从其他post来看,如果尝试将缩放比例设置为零,您会看到此消息。 对于NS来说是非常有用的,当你捏的时候logging它的比例值,看看它是否为零(并且和仿射变换错误同时出现)。

尝试使用一个真正接近零的值,然后:

 #define kNearZeroValue 0.001f 

这是在代码中某处转换matrix时仿射变换的问题。

所以基本上这个代码试图变换一个无效的奇异matrix (行列式为0)。 所以你应该避免像这样的matrix:

 0 0 0 0 0 0 0 0 1 

根据其行列式检查它是否是奇异的3×3matrix。 对行列式为零的matrix执行操作被认为是math违规(类似于除以零)。

如果您使用的是uiscrollview类,请确保您没有使用setZoomScale:animated: method或zoomScale属性将实例缩放到0,因此请检查您的滚动视图(将zoomScaleminimumZoomScalemaximumZoomScale设置为至less0.1) 。

来源: CGAffineTransformInvert – 奇异matrix的错误

对于每个webView做:

 webView.scrollView.minimumZoomScale = 0.1; 

或者大于零的任何其他数字。