CGAffineTransformInvert:奇异矩阵

时间:2012-08-18 04:13:56

标签: ios uiwebview

我偶尔会看到错误消息:

CGAffineTransformInvert: singular matrix

在Xcode的日志记录区域。当我在UIWebView中调整网站大小时,这似乎很少发生(幸运的是)。 [商业网站,不是我自己的。]由于我在我的应用程序中没有进行仿射转换,我想知道这可能是UIWebView的错误/功能。如果是这样,我可以忽略它,因为它似乎没有干扰任何东西吗?

4 个答案:

答案 0 :(得分:8)

通过查看其他帖子,如果您尝试将缩放比例设置为零,则会显示此消息。当您捏合并查看它是否为零时(并且在仿射变换错误的同时发生),NSLog对缩放值有用。

答案 1 :(得分:3)

尝试使用真正接近零的值:

#define kNearZeroValue 0.001f

答案 2 :(得分:2)

当在代码中的某处转换矩阵时,这是affine transformations的问题。

所以基本上代码试图转换singular matrix(行列式为0),这是无效的。所以你应该避免像:

这样的矩阵
0 0 0
0 0 0
0 0 1
通过检查它是否是基于其determinant的奇异3x3矩阵来实现类似的。对行列式执行操作的行为被认为是数学违规,其行列式为零(类似于除以零)。

如果您正在使用课程,请确保您未使用setZoomScale:animated:方法或zoomScale属性将实例扩展为0,因此请检查您的滚动条视图(将zoomScaleminimumZoomScalemaximumZoomScale设置为至少0.1)。

来源:CGAffineTransformInvert - singular matrix error

答案 3 :(得分:0)

对于每个webView执行:

webView.scrollView.minimumZoomScale = 0.1;

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