CGAffineTransformInvert:在的UIImagePickerController奇

2019-07-04 13:26发布

我有两个不同的应用程序尝试这样做两次,我得到同样的事情。 我有一个成立了一个实例的UIImagePickerController如下:

- (IBAction)addImage:(UIBarButtonItem *)sender {


    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
        NSArray *mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera];
        if ([mediaTypes containsObject:(NSString *)kUTTypeImage]) {
            UIImagePickerController *picker = [[UIImagePickerController alloc] init];
            picker.delegate = self;
            picker.sourceType = UIImagePickerControllerSourceTypeCamera;
            picker.mediaTypes = [NSArray arrayWithObject:(NSString *)kUTTypeImage];
            picker.allowsEditing = NO;
            picker.showsCameraControls = NO;

            [self presentViewController: picker animated:YES completion:NULL];

        }           
 [..]   

}

这是第二个。 在我第一次设置自定义叠加运行快门等功能。 一切都正常运行,但我不断收到在控制台上的错误:

 <Error>: CGAffineTransformInvert: singular matrix.

当我运行应用程序,我每次旋转时间(或移动时它标志着一个旋转)设备,而相机距{something happens here} 。 我试了一下我的两个iPhone 4和iPad迷你相同的结果。 大量的挖掘后,我发现这只是在情况下发生

picker.showsCameraControls = NO;

如果我把

picker.showsCameraControls = YES;

然后,我没有得到任何消息(尽管我的自定义覆盖隐藏太)。 确保它不是自定义背景画面本身我试图离开了这一点,它仍然提供了错误信息。

任何人都有的,我应该做些什么呢什么想法?

Answer 1:

我认为,随着苹果公司自己的PhotoPicker示例代码生成此警告它在很大程度上是良性的。 旋转与矩阵做,虽然我不知道该矩阵尤其是越来越旋转,它被认为是数学违反为零的决定对矩阵进行操作(类似除以零)。 这样的矩阵不可逆或“单数”:

http://en.wikipedia.org/wiki/Rotation_matrix

http://en.wikipedia.org/wiki/Determinant

http://en.wikipedia.org/wiki/Singular_matrix#singular



文章来源: CGAffineTransformInvert: singular matrix in UIImagePickerController with showsCameraControls = NO