2016-07-04 9 views
1

Ich verwende eine UIImagePickerController, um die Kameraansicht anzuzeigen, sodass der Benutzer ein Foto mit der App aufnehmen kann. Allerdings würde ich gerne die UIImagePickerController's Camera View obere Leiste bearbeiten - ich beziehe mich auf die Leiste, die es dem Benutzer ermöglicht, Einstellungen wie den Blitz und die Frontkamera zu ändern.Zugriff auf die obere Leiste von UIImagePickerController Kameraansicht

Mit der UIImagePickerController Eigenschaft cameraOverlayView kann ich auf die Kameraansicht zugreifen und sie ändern. Ich frage mich jedoch, ob es möglich ist, gezielt auf die obere Leiste zuzugreifen oder ihre Abmessungen zu ermitteln. Dies liegt daran, dass es einfacher wäre, meine benutzerdefinierten Ansichtsobjekte beizubehalten, die ich hinzufügen möchte (ich muss nicht erraten, wo sich die obere Leiste befindet), wenn ich darauf zugreifen könnte.

Danke, jede Hilfe ist willkommen.

+0

Änderung vorne oder hinten und Flash-on/off sind Standardoptionen helfen, die automatisch beim vorliegenden UIImagePickerController kam. – Lion

+0

@Lion Ja - Ich versuche jedoch, einen benutzerdefinierten Timer-Button auf der oberen Leiste hinzuzufügen. –

Antwort

-1

Sie so etwas tun kann,

self.pickerOverlayView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
UIButton *timerButton = [[UIButton alloc]initWithFrame:CGRectMake((self.view.frame.size.width/2) - 25, 10, 50, 30)]; 
[timerButton setTitle:@"Timer" forState:UIControlStateNormal]; 
[timerButton addTarget:self action:@selector(timerButtonclick:) forControlEvents:UIControlEventTouchUpInside]; 
[self.pickerOverlayView addSubview:timerButton]; 

picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[picker setCameraOverlayView:self.pickerOverlayView]; 

Machen Sie kundenspezifische Overlay, dann auf die Schaltfläche erstellen und zu diesem Overlay hinzufügen und diese Ansicht als cameraOverlayview Ihrer imagepickercontroller eingestellt.

Mit dem obigen Code erhalten Sie den Timer-Button in der Mitte der oberen Leiste des ImagePickerControllers.

pickerOverlayView ist der Eigenschaftstyp von uiview. Und picker ist UIImagePickerController Objekt.

timerButtonclick ist eine Methode, mit der Sie die gewünschte Aufgabe ausführen können.

Hope this wird :)

+0

Ich schätze Ihre Hilfe, aber leider beantwortet dies meine Frage nicht. Ich weiß, dass Sie einfach eine Overlayview wie diese hinzufügen können, aber das Problem kommt mit der Wartung von diesem. Dies liegt daran, dass sich die obere Leiste für jedes Gerät in der Breite ändert, weshalb es schwierig ist, sie für unterschiedliche Bildschirmgrößen beizubehalten. Daher habe ich mich gefragt, ob es eine Möglichkeit gibt, auf die oberste Leiste der UIImagePickerController-Kamera oder deren Attribute zuzugreifen. Vielen Dank –