2012-12-04 55 views
7

Tôi đã thử điều này hai lần với hai ứng dụng khác nhau và tôi nhận được cùng một điều. Tôi đã thiết lập một cá thể UIImagePIckerController như sau:CGAffineTransformInvert: ma trận số ít trong UIImagePickerController với showsCameraControls = NO

- (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]; 

     }   
[..] 

} 

Đây là lần thứ hai. Trong lần đầu tiên tôi thiết lập một lớp phủ tùy chỉnh để chạy màn trập và các chức năng khác. Tất cả mọi thứ chạy tốt nhưng tôi cứ bị lỗi trên giao diện điều khiển:

<Error>: CGAffineTransformInvert: singular matrix. 

Khi tôi chạy ứng dụng, mỗi khi tôi xoay (hoặc di chuyển về đó báo hiệu một xoay) các thiết bị trong khi máy ảnh đang lên {something happens here}. Tôi đã thử trên cả iPhone 4 và iPad Mini của tôi với cùng một kết quả. Sau rất nhiều đào Tôi thấy điều này chỉ xảy ra trong trường hợp

picker.showsCameraControls = NO; 

Nếu tôi đặt

picker.showsCameraControls = YES; 

Sau đó, tôi không nhận được tin nhắn (mặc dù lớp phủ tùy chỉnh của tôi được ẩn quá). Đảm bảo rằng đó không phải là lớp phủ tùy chỉnh mà tôi đã cố gắng thoát khỏi đó và nó vẫn cung cấp thông báo lỗi.

Bất kỳ ai có ý tưởng về những gì tôi nên làm về điều này?

+0

bài đầu tiên tuyệt vời và chào mừng bạn đến Stack Overflow. Nếu tôi có thể, tôi sẽ chỉnh sửa hai dòng bài đăng của bạn và bạn có thể nhấp vào liên kết chỉnh sửa bên dưới bài đăng của mình để tự chỉnh sửa thêm hoặc bạn có thể nhấp vào dấu thời gian phía trên chỉnh sửa của mình để xem lại các thay đổi từ trước đến nay bài đăng. Rất tiếc, không có nhận xét mang tính xây dựng nào khác trên bài đăng. Tôi sẽ khuyến khích bạn thêm một cái gì đó thay cho '{một cái gì đó xảy ra ở đây} 'bởi vì nó không hoàn toàn rõ ràng với tôi những gì sẽ xảy ra khi bạn di chuyển điện thoại. – jcolebrand

+0

Tôi đang gặp sự cố tương tự trên iOS 5 iPhone 4 với picker.showsCameraControls = NO ;. Nó xảy ra chỉ khi tôi lưu pic từ - imagePickerController: didFinishPickingMediaWithInfo: trong JPEG (không phải PNG). Nếu tôi lưu nó trong PNG nó được xoay bằng cách nào đó. –

+0

@jcolebrand: Xin chào ... tôi cũng nhận được cùng một vấn đề ..Bạn có thể giúp tôi sắp xếp vấn đề này không? –

Trả lời

1

Tôi tin rằng nó phần lớn là lành tính vì mã mẫu PhotoPicker của chính Apple tạo ra cảnh báo này. Rotation phải làm với ma trận và trong khi tôi không chắc chắn ma trận nào đặc biệt đang xoay, nó được coi là vi phạm toán học để thực hiện các phép toán trên ma trận với một yếu tố quyết định bằng không (tương tự như chia cho 0). một ma trận như vậy là không thể đảo ngược hoặc 'ít':

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

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

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

Các vấn đề liên quan