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é.

43
demandé sur Gabriel Tomitsuka 2009-06-16 17:04:15

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.

37
répondu dtt101 2011-03-17 19:41:33
- (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;
    }
10
répondu raj 2012-11-06 12:29:48

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.

3
répondu Ed Marty 2009-06-16 13:28:41

voir la vue de superposition de caméra (disponible en 3.1 et suivants)

@property(nonatomic, retain) UIView *cameraOverlayView
2
répondu user363349 2011-02-08 17:45:53