2015-09-14 14 views
8

Sto utilizzando una cornice overlay personalizzata, sulla fotocamera. Sulla barra di navigazione ho un'icona app nel mezzo e un pulsante indietro a sinistra.Rimozione del pulsante Annulla dalla telecamera personalizzata

Quindi mi piacerebbe rimuovere il pulsante di annullamento predefinito oltre al pulsante di acquisizione ma non voglio rimuovere il pulsante di scatto della fotocamera. Ho fatto delle ricerche ma non ho trovato una risposta perfetta. Ho già usato il seguente codice ma rimuove anche il pulsante clic.

[picker setShowsCameraControls:YES]; 

risposta

8

io ti senti si dovrebbe aggiungere CameraOverlayView personalizzato al UIImagePickerController e nascondere CameraControls.This vinto' t mostra il tuo pulsante Annulla.

picker = [[UIImagePickerController alloc] init];     
picker.delegate = self; 
picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
[picker setShowsCameraControls:NO]; 
CGRect screenBounds= [UIScreen mainScreen].bounds ; 
UIView *overlayView = [[UIView alloc] initWithFrame:screenBounds]; 
[overlayView setAutoresizesSubviews:YES]; 
[overlayView setAutoresizingMask:UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin]; UIButton *captureButton=[[UIButton alloc]initWithFrame:CGRectMake(screenBounds.size.width/2-30, screenBounds.size.height-60,60 , 60)]; 
[captureButton addTarget:self action:@selector(captureImage:) forControlEvents:UIControlEventTouchUpInside]; 
[captureButton setBackgroundImage:[UIImage imageNamed:@"icon"] forState:UIControlStateNormal]; 
[overlayView addSubview:captureButton]; 
[picker setCameraOverlayView:overlayView]; 
[picker setCameraDevice:UIImagePickerControllerCameraDeviceRear];     
[self presentViewController:picker animated:YES completion:NULL]; 

E questa è l'azione per il pulsante Cattura.

-(void)captureImage:(UIButton*)sender 
{ 
[picker takePicture]; 
} 

E utilizzare questo metodo delegato per ottenere l'immagine.

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    [picker dismissViewControllerAnimated:YES completion:nil]; 
} 
+0

Grazie a @deepesh. Quello ha funzionato come un fascino. –

3

penso si disattiva ma sulla rimozione non sono sicuro come io so che non è possibile perché UIImagePickerController eredita UINavigationController. Poi si può ottenere

UINavigationBar *bar = picker.navigationBar; 
[bar setHidden:NO]; 
bar.navigationItem.rightBarButtonItem = doneButton; 

Funzionerà solo per IOS 6

È possibile utilizzare questa fonte ELCImagePickerController

+0

Ho provato questo ma non funziona. –

+0

Funziona per IOS 6, è possibile utilizzare semplicemente questa libreria https://github.com/B-Sides/ELCImagePickerController –

Problemi correlati