UIImagePickerController con cameraOverlayView se centra cuando se toca el button en superposition

Soy nuevo en Objective C y es mi primera pregunta que estoy publicando aquí, así que esta es probablemente la pregunta más fácil del mundo para responder, pero no pude resolver esta.

Estoy intentando crear una aplicación para iOS que use la camera. Estoy usando la class UIImagePickerController para mostrar la camera y tomar fotos, pero he creado una UIView personalizada que contiene un montón de instancias de UIButton que superponen el marco de vista previa de la camera, utilizando la propiedad cameraOverlayView. Estoy usando el método para poner la camera en la pantalla con este código:

- (BOOL) startCameraControllerFromViewController: (UIImagePickerController*) imagePickerController usingDelegate: (id <UIImagePickerControllerDelegate, UINavigationControllerDelegate>) imagePickerControllerDelegate { if (([UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypeCamera] == NO) || (imagePickerController == nil) || (imagePickerControllerDelegate == nil)) return NO; imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; imagePickerController.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil]; imagePickerController.allowsEditing = NO; imagePickerController.showsCameraControls = NO; imagePickerController.wantsFullScreenLayout = YES; imagePickerController.delegate = imagePickerControllerDelegate; self.cameraOverlayViewController = [[CameraOverlayViewController alloc] initWithImagePickerControllerDelegate:imagePickerController nibName:@"CameraOverlayView" bundle:nil]; self.cameraOverlayViewController.view.frame = CGRectMake(0, 0, imagePickerController.view.frame.size.width, imagePickerController.view.frame.size.height); imagePickerController.cameraOverlayView = self.cameraOverlayViewController.view; [self presentViewController:imagePickerController animated:self.showCameraAnimation completion:^(void) { [self.view bringSubviewToFront:self.cameraOverlayViewController.view]; }]; return YES; 

}

Cuando presiono un button que se encuentra en la parte superior de la window de vista previa de la camera, se activa la IBAction correspondiente, pero la vista de la camera subyacente también se toca y se reajusta. Así que cada vez que presiono un button tengo que volver a enfocar manualmente la vista previa de la camera antes de poder tomar una foto. Como puede ver, he intentado utilizar bringSubViewToFront :, pero eso no parece funcionar.

¿Cómo evito que la camera se centre cuando presiono un button en la camera?

¡Por la ayuda!

Agregue esto a su código: hitTest: withEvent:

 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { UIView *hittedView = [super hitTest:point withEvent:event]; return hittedView == self.button ? hittedView : nil; } 

Me referí a esto: UserInteraction habilitar para subvista solamente . He probado el código. ¡Y funciona!