8

Fotos bearbeiten, nachdem es genommen worden ist (bewegt und Skalierung es) arbeitet in meiner app mit dieser Linie fein:cameraOverlayView verhindert Bearbeitung mit allowsEditing

[imagePicker setAllowsEditing:YES]; 

Aber wenn ich auch eine cameraOverlayView verwenden, doesn der Bearbeitungsmodus‘ t arbeiten mehr. Der Bildschirm wird angezeigt, aber Pan- und Pinch-Gesten lassen nichts passieren.

Ich bin Ihre durchschnittliche Bild Picker Controller:

UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init]; 

Und ich hinzufügen, einen Fachkamera-Overlay aus einem View-Controller Ansicht benutzerdefinierten erstellt:

CameraOverlayViewController *overlayController = [[CameraOverlayViewController alloc] init]; 
UIView *overlayView = overlayController.view; 
[imagePicker setCameraOverlayView:overlayView]; 

In IB, diese Ansicht ist eingerichtet, um Benutzerinteraktion und Mehrfachberührung zu ermöglichen, die es ermöglicht, während der Aufnahme zu zoomen und zu fokussieren. Wenn das Bild jedoch aufgenommen wurde und in den Bearbeitungsmodus wechselt, können Sie das Foto nicht verschieben oder zusammendrücken, um es zu verschieben oder zu skalieren.

Was fehlt mir?

+0

Ich sehe das gleiche Problem hier. und auch die Lautstärkeregelung (Shutter) -Taste funktioniert nicht nach der Verwendung der Überlagerung – tom

+0

Verwenden Sie Billys erstaunliche Tipp, oder http://StackOverflow.com/Questions/17942444/UIImagePicker-CameraOverlayview-Office-on-retake-screen – Fattie

Antwort

32

Übernimmt Ihr Overlay den gesamten Raum der Kameraansicht? Wenn dies der Fall ist, werden Berührungen auf das Overlay statt auf die Ansicht darunter angewendet, selbst wenn Sie einen transparenten Hintergrund haben.

Fügen Sie diese Methode zu Ihrer Überlagerungsansicht hinzu und ignorieren Berührungen, damit sie an die folgenden Ansichten übergeben werden. (Sie sind ein Verfahren zur Herstellung UIView überschrieben, die Berührungen erkennt.)

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event 
{ 
    return NO; 
} 

Hinweis: sowie diese fantastische Spitze, können Sie wollen auch dieses Stück info verwenden, Ihre Überlagerungsansicht zu entfernen, bei diese Stufe: UIImagePicker cameraOverlayView appears on Retake screen

+0

That war genau das, wonach ich suchte. Vielen Dank. –

+0

Danke. Ich arbeite nicht mehr an dieser Funktion, also habe ich es nicht auf meiner eigenen App getestet, aber ich nehme an, es ist verdammt gut. Tut mir leid, ich habe es früher verpasst! –

+0

Danke, es hat mir sehr geholfen ... –