iPhone: aperçu de L'Appareil Photo Overlay
comment ajouter une superposition (UIImageView
) à l'aperçu de la caméra et
la poignée touche à ça?
mes précédentes tentatives pour faire ceci (par exemple, utilisez UIImagePickerController
et ajouter l'image en tant que sous-vue) ont échoué.
4 réponses
Ce tutoriel vous explique: http://www.musicalgeometry.com/?p=821
il suffit d'ajouter un UIImage dans la vue overlay au lieu de la zone rouge affichée dans le tutoriel.
- (IBAction)TakePicture:(id)sender {
// Create image picker controller
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
// Set source to the camera
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
// Delegate is self
imagePicker.delegate = self;
OverlayView *overlay = [[OverlayView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
// Insert the overlay:
imagePicker.cameraOverlayView = overlay;
// Allow editing of image ?
imagePicker.allowsImageEditing = YES;
[imagePicker setCameraDevice:
UIImagePickerControllerCameraDeviceFront];
[imagePicker setAllowsEditing:YES];
imagePicker.showsCameraControls=YES;
imagePicker.navigationBarHidden=YES;
imagePicker.toolbarHidden=YES;
imagePicker.wantsFullScreenLayout=YES;
self.library = [[ALAssetsLibrary alloc] init];
// Show image picker
[self presentModalViewController:imagePicker animated:YES];
}
créer une classe uivi et ajouter ce code
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
// Clear the background of the overlay:
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
// Load the image to show in the overlay:
UIImage *overlayGraphic = [UIImage imageNamed:@"overlaygraphic.png"];
UIImageView *overlayGraphicView = [[UIImageView alloc] initWithImage:overlayGraphic];
overlayGraphicView.frame = CGRectMake(30, 100, 260, 200);
[self addSubview:overlayGraphicView];
}
return self;
}
vous pourriez être en mesure d'ajouter le UIImageView
comme sous-vue de la fenêtre principale directement au lieu de UIImagePicker
, il peut mieux fonctionner. Juste assurez-vous d'ajouter dans le bon ordre, ou appeler
[window bringSubviewToFront:imageView];
une fois que la caméra est en place.
Si vous souhaitez gérer sur la touche UIImageView
vous pouvez simplement ajouter le UIImageView
comme sous-vue d'un fullscreen normal View
avec un fond transparent, et ajouter à la fenêtre à la place, avec un sous-classe que vous pouvez utiliser pour gérer les événements tactiles.
voir la vue de superposition de caméra (disponible en 3.1 et suivants)
@property(nonatomic, retain) UIView *cameraOverlayView