Kamera-Overlay-Bild

bearbeiten 3

Gute und schlechte Nachrichten. Die gute Nachricht ist, dass ich im Connections Inspector durch Trennen der Overlay-UIToolbar und Verbinden der UIImage-Ansicht verstehetheKing, aber dann - die schlechten Nachrichten - sehe ich nicht die UIToolbar, die ich auch brauche. Die Frage ist nun, wie der Benutzer zum anrufenden VC zurückkehren kann, wenn er hier fertig ist. Wie können sowohl die Symbolleiste als auch das Bild Teil der Überlagerung sein oder kann sich die Symbolleiste "Zurück" in der Nicht-Überlagerungsansicht befinden oder so? Oder wie kann ich die Symbolleiste und das Bild auf dem OverlayViewController anzeigen lassen?

bearbeiten 3

bearbeiten 2

setupImagePicker imOverlayViewController.m.

- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType
{
    self.imagePickerController.sourceType = sourceType;

    if (sourceType == UIImagePickerControllerSourceTypeCamera)
    {
        // user wants to use the camera interface
        //
        self.imagePickerController.showsCameraControls = NO;

        if ([[self.imagePickerController.cameraOverlayView subviews] count] == 0)
        {
            // setup our custom overlay view for the camera
            //
            // ensure that our custom view's frame fits within the parent frame
            CGRect overlayViewFrame = self.imagePickerController.cameraOverlayView.frame;
            CGRect newFrame = CGRectMake(0.0,
                                         CGRectGetHeight(overlayViewFrame) -
                                         self.view.frame.size.height - 10.0,
                                         CGRectGetWidth(overlayViewFrame),
                                         self.view.frame.size.height + 10.0);
            self.view.frame = newFrame;
            [self.imagePickerController.cameraOverlayView addSubview:self.view];
        }
    }
}

bearbeiten 2

bearbeiten 1

Dies ist der PhotoPicker-Beispielcode-Link.

bearbeiten 1

0 bearbeiten

Hat jemand dies auf einem iPhone anstelle eines iPad ausprobiert? Ich habe kein iPhone, aber ich habe heute Matt Neuburgs Buch gelesen, in dem er sagt, dass UIImagePicker auf den beiden Geräten anders funktioniert.

0 bearbeiten

Ich kann das Bild, das ich versuche, in der Kameraansicht in UIImagePicker zu überlagern, nicht sehen. Egal, wie ich das IBOutlet als Eigenschaft hinzufüge oder nicht, das Bild wird nicht angezeigt, aber die überlagerte Symbolleiste wird gut angezeigt. Warum?

OverlayViewController.h mittheKing IBOutlet wurde zu Apples Beispielcode hinzugefügt und vorerst auskommentiert.

#import <UIKit/UIKit.h>
#import <AudioToolbox/AudioServices.h>

@protocol OverlayViewControllerDelegate;

@interface OverlayViewController : UIViewController <UINavigationControllerDelegate, UIImagePickerControllerDelegate>
{
    // IBOutlet UIImageView* theKing;   ******** temporarily commented out
    id <OverlayViewControllerDelegate> delegate;
}    

@property (nonatomic, assign) id <OverlayViewControllerDelegate> delegate;
@property (nonatomic, retain) UIImagePickerController *imagePickerController;

- (void)setupImagePicker:(UIImagePickerControllerSourceType)sourceType;

@end

@protocol OverlayViewControllerDelegate
- (void)didTakePicture:(UIImage *)picture;
- (void)didFinishWithCamera;
@end

OverlayViewController.m mit demproperty zumtheKing IBOutlet wurde zu Apples Beispielcode hinzugefügt.

#import "OverlayViewController.h"

enum
{
    kOneShot,       // user wants to take a delayed single shot
    kRepeatingShot  // user wants to take repeating shots
};

@interface OverlayViewController ( )

@property (assign) SystemSoundID tickSound;

@property (nonatomic, retain) IBOutlet UIImageView* theKing;  // added *********
@property (nonatomic, retain) IBOutlet UIBarButtonItem *takePictureButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *startStopButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *timedButton;
@property (nonatomic, retain) IBOutlet UIBarButtonItem *cancelButton;

@property (nonatomic, retain) NSTimer *tickTimer;
@property (nonatomic, retain) NSTimer *cameraTimer;

Ich kann das Bild nicht sehentheKing wenn ich den Code auf einem iPhone ausführe. Unten sehen Sie eine Ansicht der von mir hinzugefügten Schreibfeder, die einige der hergestellten Verbindungen zeigt. Es werden keine Fehler ausgegeben, aber ich kann das Bild nicht sehen, nur die bereits hinzugefügte UIToolbar.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage