Je veux juste un screeen: Lorsque vous utilisez UIImagePickerController
il utilise deux écrans.
Mais je ne veux pas celui-ci:
Est-ce possible?
@Fahri
raison AVFoundation
est plus flexible mais si vous voulez coller avec UIImagePickerController
ce que vous pouvez faire est de désactiver le contrôle de la camera en showsCameraControls
propriété showsCameraControls
à NO
, puis présentez votre propre vue et vos methods personnalisées.
Changez votre code pour:
Prendre une video
- (IBAction)takeVideo:(UIButton *)sender { UIToolbar *toolBar=[[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-54, self.view.frame.size.width, 55)]; toolBar.barStyle = UIBarStyleBlackOpaque; NSArray *items=[NSArray arrayWithObjects: [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(cancelVideo)], [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(shootVideo)], [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil], nil]; [toolBar setItems:items]; // create the overlay view UIView *overlayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-44)]; overlayView.opaque=NO; overlayView.backgroundColor=[UIColor clearColor]; // parent view for our overlay UIView *cameraView=[[UIView alloc] initWithFrame:self.view.bounds]; [cameraView addSubview:overlayView]; [cameraView addSubview:toolBar]; picker = [[UIImagePickerController alloc] init]; if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera] == NO){ NSLog(@"Camera not available"); return; } picker.sourceType = UIImagePickerControllerSourceTypeCamera; picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSSsortingng *) kUTTypeMovie, nil]; picker.delegate = self; // hide the camera controls picker.showsCameraControls=NO; [picker setCameraOverlayView:cameraView]; [self presentViewController:picker animated:YES completion:nil]; }
prise VIDEO
-(void) shootVideo { [picker startVideoCapture]; }
annulerVideo
- (IBAction)cancelVideo { [self dismissViewControllerAnimated:YES completion:nil]; }
capture d'écran
TÉLÉCHARGER LE PROJET DEMO
Si vous avez déjà vérifié la documentation de UIImagePickerController
avant de postr votre question, vous pouvez utiliser la bibliothèque AVFoundation
pour créer votre propre controller de camera, avec les controls et les écrans que vous voulez. Bonne chance!