【问题标题】:CGAffineTransformInvert: singular matrixCGAffineTransformInvert:奇异矩阵
【发布时间】:2012-08-18 04:13:55
【问题描述】:

我偶尔会看到错误消息:

CGAffineTransformInvert: singular matrix

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

【问题讨论】:

    标签: ios uiwebview


    【解决方案1】:

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

    【讨论】:

    • -[UIScrollView setMinimumZoomScale:0] 似乎是我的罪魁祸首。它也与吃东西有关,所以你最好修复它。参看。 sokol8.blogspot.com/2011/05/….
    • 当您设置的字体大小小于 0 时也会发生此错误。
    【解决方案2】:

    然后尝试使用接近零的实数:

    #define kNearZeroValue 0.001f
    

    【讨论】:

      【解决方案3】:

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

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

      0 0 0
      0 0 0
      0 0 1
      

      通过检查它是否是基于其determinant 的奇异 3x3 矩阵来进行类似的操作。对行列式为零的矩阵执行运算(类似于除以零)被认为是违反数学的。

      如果您使用 类,请确保您没有使用setZoomScale:animated: 方法或zoomScale 属性将实例缩放到0,因此请检查您的滚动视图(设置您的zoomScale、@987654330 @ 和 maximumZoomScale 至少设置为 0.1)。

      来源:CGAffineTransformInvert - singular matrix error

      【讨论】:

      • 如何从变换中得到这个 3x3 矩阵?我在 CAAffineTransform 中看到了 a、b、c、d、tx 和 ty。 6 项。
      【解决方案4】:

      为每个 webView 做:

      webView.scrollView.minimumZoomScale = 0.1;
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-04
        • 2014-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多