tomadas plus imagenes fotos editar como iphone uiimageview camera uiimagepickercontroller

plus - iPhone: superposición de vista previa de la cámara



imagenes de iphone 6 plus (4)

Es posible que pueda agregar el UIImageView como una subvista de la ventana principal directamente en lugar del UIImagePicker , puede funcionar mejor. Solo asegúrate de agregarlos en el orden correcto o llamar

[window bringSubviewToFront:imageView];

después de que la cámara está arriba.

Si desea manejar toques en el UIImageView , puede agregar UIImageView como una subvista de una vista normal a pantalla completa con un fondo transparente, y agregarla a la ventana, con una subclase UIViewController normal que puede usar para manejar los eventos táctiles. .

¿Cómo agrego una superposición ( UIImageView ) a la vista previa de la cámara y manejo los toques en esto?

Mis intentos anteriores de hacer esto (por ejemplo, usar UIImagePickerController y agregar la imagen como una subvista) han fallado.



Para su archivo de implementación:

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

Haz una clase UIView y agrega este código

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


Ver la vista de superposición de la cámara (disponible en 3.1 y posterior)

@property(nonatomic, retain) UIView *cameraOverlayView