Frage

Wie füge ich eine Überlagerung hinzu (UIImageView) zur Kamera -Vorschau und Handlungsberührungen?

Meine vorherigen Versuche, dies zu tun (z. B. Verwendung UIImagePickerController und fügen Sie das Bild als Unteransicht hinzu) fehlgeschlagen.

War es hilfreich?

Lösung

Dieses Tutorial erklärt es: http://www.musicsicgeometry.com/?p=821

Fügen Sie einfach eine Benutzeroberfläche in die Overlay -Ansicht anstelle des im Tutorial gezeigten roten Bereichs hinzu.

Andere Tipps

Für Ihre Implementierungsdatei:

- (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];
    }

Erstellen Sie eine UIView -Klasse und fügen Sie diesen Code hinzu

    - (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;
    }

Möglicherweise können Sie das hinzufügen UIImageView als Unteransicht des Hauptfensters direkt anstelle der UIImagePicker, Es kann besser funktionieren. Stellen Sie einfach sicher, dass Sie sie in der richtigen Reihenfolge hinzufügen oder anrufen

[window bringSubviewToFront:imageView];

Nachdem die Kamera abgelaufen ist.

Wenn Sie mit Berührungen auf dem handeln möchten UIImageView Sie könnten das einfach hinzufügen UIImageView als Unterblick eines normalen Vollbildbildes View mit einem transparenten Hintergrund und hinzufügen das stattdessen zum Fenster mit einem normalen UIViewController Unterklasse, mit der Sie die Touch -Ereignisse verarbeiten können.

See the camera overlay view (available in 3.1 and later)

@property(nonatomic, retain) UIView *cameraOverlayView
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top