Se si desidera visualizzare una sovrapposizione sopra UIImagePickerController, ad esempio nel mio caso, mentre allo stesso tempo che si adatta al "live camera feed" del controller (la vista) tra alcuni componenti dell'interfaccia utente sul proprio overlay (come una barra superiore e una barra in basso), utilizzare il seguente codice. Questo è basato sulla risposta di SomaMan sopra (GRAZIE), con la differenza principale di visualizzare la vista di UIImagePickerController come una sottoview del controller corrente anziché come una sottoview della finestra principale dell'applicazione. Mettete questo codice in viewDidLoad():
// Overlay view with custom camera controls and a top bar and a bottom bar
self.overlay = [[CameraOverlayView alloc] initWithFrame:self.view.bounds];
[self setOverlayViewModel];
self.imagePicker = [[UIImagePickerController alloc] init];
self.imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imagePicker.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.imagePicker.cameraFlashMode = UIImagePickerControllerCameraFlashModeOff;
self.imagePicker.showsCameraControls = NO;
self.imagePicker.navigationBarHidden = YES;
self.imagePicker.toolbarHidden = YES;
self.imagePicker.delegate = self;
UIView *imagePickerView = self.imagePicker.view;
if ([[UIScreen mainScreen] bounds].size.height == 568.0f) {
// iPhone 5, 16:9 ratio, need to "zoom in" in order to fill the screen since there is extra space between top and bottom bars on a taller screen
self.imagePicker.cameraViewTransform = CGAffineTransformScale(self.imagePicker.cameraViewTransform, 1.5, 1.5); // change 1.5 to suit your needs
}
CGRect cameraViewFrame = CGRectMake(0, self.overlay.topBarHeight,
self.view.bounds.size.width,
self.view.bounds.size.height - self.overlay.topBarHeight - self.overlay.bottomBarHeight);
imagePickerView.frame = cameraViewFrame;
// keep this order so that the overlay view is on top of the "live camera feed" view
[self.view addSubview:imagePickerView];
[self.view addSubview:self.overlay];
SUGGERIMENTO: Quando si fa cameraViewTransform, assicurarsi di applicare la stessa trasformazione sulla foto risultante che il selettore cattura per voi, se si desidera che l'utente per finire con la stessa immagine che vedono attraverso il punto di vista del trasformatore trasformato: P
fonte
2013-03-06 01:59:11
Hai risolto la tua domanda? –