2012-05-17 7 views
6

Ich verwende UIImagePickerController, um ein Bild zu machen. Ich verwende den folgenden Code:UIImagePickerController gibt mir eine schwarze Vorschau

UIImagePickerController* UIPicker = [[UIImagePickerController alloc] init]; 
UIPicker.delegate = self; 
UIPicker.sourceType= UIImagePickerControllerSourceTypeCamera; 
[UIPicker setCameraCaptureMode:UIImagePickerControllerCameraCaptureModePhoto]; 
UIPicker.allowsEditing=NO; 
[self presentModalViewController:UIPicker animated:YES]; 
[UIPicker release]; 

Das Problem ist, dass zufällig ich die Vorschau als schwarzer Bildschirm bekommen, wenn es einmal passiert, dann ist es wieder nie, bis wir die Anwendung töten und neu starten.

Ich bekomme ein korrektes Bild von UIImagePickerControllerDelegate, aber ich habe dieses Problem mit der Vorschau, wenn UIImagePickerController Kamera als Quelltyp hat.

Antwort

0

Wenn es zufällig passiert, bezweifle ich, dass es ein Speicherproblem ist. Das Bild von UIImagePickerController ist ziemlich groß. Wenn Sie das Bild irgendwie manipulieren, kann Ihr Speicher dies möglicherweise nicht unterstützen.

0

Ich lief heute Abend dasselbe Problem mit der Kameravorschau, und die Ursache des Problems war ... völlig unzusammenhängender Code im Anwendungsdelegaten, der die Benutzeroberfläche in einer Hintergrundwarteschlange änderte.

Offensichtlich braucht es nicht viel, um die fragilen internen Variablen zu verunsichern, auf die AVFoundation angewiesen ist.

Sobald ich die Aufrufe von UI-Code aus Hintergrundwarteschlangen beseitigt hatte, wurde die Kameravorschau schnell und zuverlässig.

Dieser Artikel (http://www.cocoanetics.com/2013/02/uiview-background-queue-debugging/) war sehr hilfreich bei der Suche, wo die UI aus einer Hintergrundwarteschlange geändert wurde.

Ich empfehle auch, dass Sie die Antwort auf diese Frage (iOS 7 UIImagePickerController has black preview)

überprüfen
Verwandte Themen