UIView上的自定义相机,不是全屏

时间:2015-01-21 12:35:40

标签: ios objective-c uiimagepickercontroller crop ios-camera

我正在做一个应用程序,在应用程序的特定部分,用户将能够从相机拍摄照片或从相册中选择,此图像将显示在ViewController上。 这有点容易,但是,我需要的是,我无法做到的是: - 我不希望相机打开全屏,我希望它在用户所在的ViewController上“打开”,在一个圆圈内与图像完全相同的位置。 我能够使相机不能全屏打开,但我无法将此视图放在圆形视图中并根据圆圈裁剪照片。

这是我的代码,如果您创建一个标准项目,它可能会有效,我认为这将有助于了解正在发生的事情:

变量

@property (nonatomic, strong) UIImagePickerController * picker;
@property (nonatomic, strong) UIImageView             * photoView;
@property (nonatomic, strong) UIView                  * overlayView;
@property (nonatomic, strong) UIButton * takePhotoButton; //- function
@property (nonatomic, strong) UIButton * selectPhotoButton;
@property (nonatomic, strong) UIButton * takePicture; //- action

CODE

    @interface CameraViewController ()
{
    BOOL isFromAlbum;
}

@end

@implementation CameraViewController

@synthesize photoView;
@synthesize picker;
@synthesize takePicture;
@synthesize selectPhotoButton;
@synthesize takePhotoButton;
@synthesize overlayView;
@synthesize switchCameraButton;

#pragma mark -
#pragma mark Initialization & Life Cycle
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self initInterface];
}
-(void)initInterface
{
    [super addBackButton];

    self.view.backgroundColor                   = [UIColor colorWithRed:026.0f/255.0f green:030.0f/255.0f blue:055.0f/255.0f alpha:1.0f];

    self.takePhotoButton                        = [UIButton buttonWithType:UIButtonTypeSystem];
    self.takePhotoButton.frame                  = CGRectMake(27.5f, self.view.frame.size.width/2 - 55, 110, 110);
    self.takePhotoButton.layer.cornerRadius     = self.takePhotoButton.frame.size.width / 2.0f;
    [self.takePhotoButton setImage:[UIImage imageNamed:@"take-photo-btn"] forState:UIControlStateNormal];
    [self.takePhotoButton addTarget:self action:@selector(takePhotoFunction) forControlEvents:UIControlEventTouchUpInside];
    //[self.takePhotoButton setBackgroundColor:[UIColor colorWithRed:000.0f/255.0f green:255.0f/255.0f blue:000.0f/255.0f alpha:0.25f]];
    [self.view addSubview:self.takePhotoButton];

    self.selectPhotoButton                      = [UIButton buttonWithType:UIButtonTypeSystem];
    self.selectPhotoButton.frame                = CGRectMake(self.view.frame.size.width/2 + 27.5f, self.view.frame.size.width/2 - 55, 110, 110);
    self.selectPhotoButton.layer.cornerRadius   = self.selectPhotoButton.frame.size.width / 2.0f;
    [self.selectPhotoButton setImage:[UIImage imageNamed:@"pick-photo-btn"] forState:UIControlStateNormal];
    [self.selectPhotoButton addTarget:self action:@selector(selectPhoto) forControlEvents:UIControlEventTouchUpInside];
    //[self.selectPhotoButton setBackgroundColor:[UIColor colorWithRed:0 green:255/255.0f blue:0 alpha:0.25f]];
    [self.view addSubview:self.selectPhotoButton];


    self.photoView                              = [[UIImageView alloc] init];
    self.photoView.backgroundColor              = [UIColor colorWithRed:255.0f/255.0f green:000.0f/255.0f blue:000.0f/255.0f alpha:0.25f];
    self.photoView.frame                        = CGRectMake(0, 0, 320, 320);
    self.photoView.layer.cornerRadius           = self.photoView.frame.size.width / 2;
    self.photoView.layer.masksToBounds          = YES;
    self.photoView.userInteractionEnabled       = YES;
}

#pragma  mark -
#pragma mark Button's Actions
- (void)takePhotoFunction
{
    self.picker                     = [[UIImagePickerController alloc] init];
    self.picker.delegate            = self;
    self.picker.allowsEditing       = YES;
    self.picker.sourceType          = UIImagePickerControllerSourceTypeCamera;
    self.picker.showsCameraControls = NO;
    self.picker.view.frame          = self.photoView.bounds;
    [self.photoView addSubview:self.picker.view];

    self.takePicture                    = [UIButton buttonWithType:UIButtonTypeSystem];
    self.takePicture.frame              = CGRectMake(self.photoView.frame.size.width/2 - 35, self.photoView.frame.size.height - 70, 70, 70);
    [self.takePicture addTarget:self action:@selector(takePhotoAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.takePicture setBackgroundImage:[UIImage imageNamed:@"take-photo-action"] forState:UIControlStateNormal];
    [self.photoView addSubview:self.takePicture];

    self.switchCameraButton = [[UIButton alloc] init];
    self.switchCameraButton.frame              = CGRectMake(self.photoView.frame.size.width/2 - 35, self.photoView.frame.origin.y, 70, 70);
    [self.switchCameraButton addTarget:self action:@selector(switchCamera:) forControlEvents:UIControlEventTouchUpInside];
    [self.switchCameraButton setBackgroundImage:[UIImage imageNamed:@"reverse-camera-btn"] forState:UIControlStateNormal];
    [self.photoView addSubview:self.switchCameraButton];


    [self.view addSubview:self.photoView];
    isFromAlbum = NO;
}

- (void)selectPhoto
{
    self.picker = [[UIImagePickerController alloc] init];
    self.picker.delegate = self;
    self.picker.allowsEditing = YES;
    self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    isFromAlbum = YES;

    [self presentViewController:self.picker animated:YES completion:NULL];
}

-(IBAction)takePhotoAction:(id)sender
{
    [self.picker takePicture];
}

-(IBAction)switchCamera:(id)sender
{
    if (picker.cameraDevice == UIImagePickerControllerCameraDeviceFront)
    {
        picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    }
    else if (picker.cameraDevice == UIImagePickerControllerCameraDeviceRear)
    {
        picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    }
}

#pragma mark -
#pragma mark PickerController Delegate Methods
- (void)imagePickerController:(UIImagePickerController *)myPicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    UIImage *originalImage, *editedImage, *imageToSave;

    // Handle a still image capture
    //if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo)
    if (isFromAlbum == NO)
    {
        editedImage = (UIImage *) [info objectForKey:
                                   UIImagePickerControllerEditedImage];
        originalImage = (UIImage *) [info objectForKey:
                                     UIImagePickerControllerOriginalImage];

        if (editedImage)
        {
            imageToSave = editedImage;
        }
        else
        {
            imageToSave = originalImage;
        }

        // Save the new image (original or edited) to the Camera Roll
        //UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
        [self.takePhotoButton removeFromSuperview];
        [self.switchCameraButton removeFromSuperview];
        [self.selectPhotoButton removeFromSuperview];
        [self.picker.view removeFromSuperview];
        [self.takePicture removeFromSuperview];


        CGFloat minimumSide = fminf(imageToSave.size.width, imageToSave.size.height);
        CGFloat finalSquareSize = 640.;

        //create new drawing context for right size
        CGRect rect = CGRectMake(0, 0, finalSquareSize, finalSquareSize);
        CGFloat scalingRatio = 640.0/minimumSide;
        UIGraphicsBeginImageContext(rect.size);

        //draw
        [imageToSave drawInRect:CGRectMake((minimumSide - originalImage.size.width)*scalingRatio/2., (minimumSide - originalImage.size.height)*scalingRatio/2., originalImage.size.width*scalingRatio, originalImage.size.height*scalingRatio)];

        UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();



        //[self.photoView setImage:imageToSave];
        [self.photoView setImage:croppedImage];
    }
    else
    {
        [self.takePhotoButton removeFromSuperview];
        [self.selectPhotoButton removeFromSuperview];
        UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
        [self.photoView setImage:chosenImage];
        [self.view addSubview:self.photoView];
        [myPicker dismissViewControllerAnimated:YES completion:NULL];
    }
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)myPicker
{
    //[picker.view removeFromSuperview];
    [myPicker dismissViewControllerAnimated:YES completion:NULL];
}

#pragma mark -
#pragma mark NavigationController Methods
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

2 个答案:

答案 0 :(得分:1)

使用下面的代码,我得到以下结果:

  1. 带深蓝色背景的单个视图。
  2. 2个绿色圆圈(按钮)
  3. 点击左侧的圆圈会使相机瞄准"视线"在里面。
  4. 点击"采取"按钮(在左侧圆圈的底部)触发" takePhotoAction"方法
  5. [代码]

       //  ViewController.m
        #import "ViewController.h"
        @interface ViewController () <UIImagePickerControllerDelegate, UINavigationControllerDelegate> {
            BOOL isFromAlbum;
        }
        @property (nonatomic, strong) UIImagePickerController * picker;
        @property (nonatomic, strong) UIImageView             * photoView;
        @property (nonatomic, strong) UIView                  * overlayView;
        @property (nonatomic, strong) UIButton * takePhotoButton; //- function
        @property (nonatomic, strong) UIButton * selectPhotoButton;
        @property (nonatomic, strong) UIButton * takePicture; //- action
    
        @end
    
    @implementation ViewController
    
    #pragma mark -
    #pragma mark Initialization & Life Cycle
    - (void)viewDidLoad {
        [super viewDidLoad];
        [self initInterface];
    }
    -(void)initInterface {
        self.view.backgroundColor                   = [UIColor colorWithRed:026.0f/255.0f green:030.0f/255.0f blue:055.0f/255.0f alpha:1.0f];
    
        self.takePhotoButton                        = [UIButton buttonWithType:UIButtonTypeSystem];
        self.takePhotoButton.frame                  = CGRectMake(27.5f, self.view.frame.size.width/2 - 55, 110, 110);
        self.takePhotoButton.layer.cornerRadius     = self.takePhotoButton.frame.size.width / 2.0f;
        [self.takePhotoButton setImage:[UIImage imageNamed:@"take-photo-btn"] forState:UIControlStateNormal];
        [self.takePhotoButton addTarget:self action:@selector(takePhotoFunction) forControlEvents:UIControlEventTouchUpInside];
        [self.takePhotoButton setBackgroundColor:[UIColor colorWithRed:000.0f/255.0f green:255.0f/255.0f blue:000.0f/255.0f alpha:0.25f]];
        [self.view addSubview:self.takePhotoButton];
    
        self.selectPhotoButton                      = [UIButton buttonWithType:UIButtonTypeSystem];
        self.selectPhotoButton.frame                = CGRectMake(self.view.frame.size.width/2 + 27.5f, self.view.frame.size.width/2 - 55, 110, 110);
        self.selectPhotoButton.layer.cornerRadius   = self.selectPhotoButton.frame.size.width / 2.0f;
        [self.selectPhotoButton setImage:[UIImage imageNamed:@"pick-photo-btn"] forState:UIControlStateNormal];
        [self.selectPhotoButton addTarget:self action:@selector(selectPhoto) forControlEvents:UIControlEventTouchUpInside];
        [self.selectPhotoButton setBackgroundColor:[UIColor colorWithRed:0 green:255/255.0f blue:0 alpha:0.25f]];
        [self.view addSubview:self.selectPhotoButton];
    
    
        self.photoView                              = [[UIImageView alloc] init];
        self.photoView.backgroundColor              = [UIColor colorWithRed:255.0f/255.0f green:000.0f/255.0f blue:000.0f/255.0f alpha:0.25f];
        self.photoView.frame                        = self.takePhotoButton.frame;
        self.photoView.layer.cornerRadius           = self.photoView.frame.size.width / 2;
        self.photoView.layer.masksToBounds          = YES;
        [self.photoView setUserInteractionEnabled:YES];
    }
    #pragma  mark -
    #pragma mark Actions
    - (void)takePhotoFunction {
        self.picker                     = [[UIImagePickerController alloc] init];
        self.picker.delegate            = self;
        self.picker.allowsEditing       = YES;
        self.picker.sourceType          = UIImagePickerControllerSourceTypeCamera;
        self.picker.showsCameraControls = NO;
        self.picker.view.frame          = self.photoView.bounds;
        [self.photoView addSubview:self.picker.view];
    
        self.takePicture                    = [UIButton buttonWithType:UIButtonTypeSystem];
        self.takePicture.frame              = CGRectMake(self.photoView.frame.size.width/2 - 35, self.photoView.frame.size.height - 40, 70, 70);
        [self.takePicture addTarget:self action:@selector(takePhotoAction:) forControlEvents:UIControlEventTouchUpInside];
        [self.takePicture setBackgroundImage:[UIImage imageNamed:@"take-photo-action"] forState:UIControlStateNormal];
        [self.photoView addSubview:self.takePicture];
    
        [self.view addSubview:self.photoView];
        isFromAlbum = NO;
    }
    - (void)selectPhoto {
        self.picker = [[UIImagePickerController alloc] init];
        self.picker.delegate = self;
        self.picker.allowsEditing = YES;
        self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    
        isFromAlbum = YES;
    
        [self presentViewController:self.picker animated:YES completion:NULL];
    }
    
    -(IBAction)takePhotoAction:(id)sender {
        [self.picker takePicture];
    }
    #pragma mark -
    #pragma mark PickerController Delegate Methods
    - (void)imagePickerController:(UIImagePickerController *)myPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
        //NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
        UIImage *originalImage, *editedImage, *imageToSave;
    
        // Handle a still image capture
        //if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo)
        if (isFromAlbum == NO) {
            editedImage = (UIImage *) [info objectForKey:
                                       UIImagePickerControllerEditedImage];
            originalImage = (UIImage *) [info objectForKey:
                                         UIImagePickerControllerOriginalImage];
    
            if (editedImage) {
                imageToSave = editedImage;
            } else {
                imageToSave = originalImage;
            }
    
            // Save the new image (original or edited) to the Camera Roll
            //UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
            [self.takePhotoButton removeFromSuperview];
            [self.selectPhotoButton removeFromSuperview];
            [self.picker.view removeFromSuperview];
            [self.takePicture removeFromSuperview];
            [self.photoView setImage:imageToSave];
    
        } else {
            [self.takePhotoButton removeFromSuperview];
            [self.selectPhotoButton removeFromSuperview];
            UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
            [self.photoView setImage:chosenImage];
            [self.view addSubview:self.photoView];
            [myPicker dismissViewControllerAnimated:YES completion:NULL];
        }
    }
    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)myPicker {
        //[picker.view removeFromSuperview];
        [myPicker dismissViewControllerAnimated:YES completion:NULL];
    }
    #pragma mark -
    #pragma mark NavigationController Methods
    -(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated {
        [[UIApplication sharedApplication] setStatusBarHidden:NO];
    }
    @end
    

答案 1 :(得分:0)

解决了PhotoView上“较小图像”的问题后拍摄照片后将其裁剪为正方形,然后设置PhotoView的图像。

通过在x:0,y:-50,PhotoView.width,PhotoView.height上设置picker.view框架,在PhotoView上设置图像后解决了图像“上升”的问题。< / p>

以下是完整代码:

@interface CameraViewController ()
{
    BOOL isFromAlbum;
}

@end

@implementation CameraViewController

@synthesize photoView;
@synthesize picker;
@synthesize takePicture;
@synthesize selectPhotoButton;
@synthesize takePhotoButton;
@synthesize switchCameraButton;

#pragma mark -
#pragma mark Initialization & Life Cycle
- (void)viewDidLoad
{
    [super viewDidLoad];
    [self initInterface];
}
-(void)initInterface
{
    [super addBackButton];

    self.view.backgroundColor                   = [UIColor colorWithRed:026.0f/255.0f green:030.0f/255.0f blue:055.0f/255.0f alpha:1.0f];

    self.takePhotoButton                        = [UIButton buttonWithType:UIButtonTypeSystem];
    self.takePhotoButton.frame                  = CGRectMake(27.5f, self.view.frame.size.width/2 - 55, 110, 110);
    self.takePhotoButton.layer.cornerRadius     = self.takePhotoButton.frame.size.width / 2.0f;
    [self.takePhotoButton setImage:[UIImage imageNamed:@"take-photo-btn"] forState:UIControlStateNormal];
    [self.takePhotoButton addTarget:self action:@selector(takePhotoFunction) forControlEvents:UIControlEventTouchUpInside];
    //[self.takePhotoButton setBackgroundColor:[UIColor colorWithRed:000.0f/255.0f green:255.0f/255.0f blue:000.0f/255.0f alpha:0.25f]];
    [self.view addSubview:self.takePhotoButton];

    self.selectPhotoButton                      = [UIButton buttonWithType:UIButtonTypeSystem];
    self.selectPhotoButton.frame                = CGRectMake(self.view.frame.size.width/2 + 27.5f, self.view.frame.size.width/2 - 55, 110, 110);
    self.selectPhotoButton.layer.cornerRadius   = self.selectPhotoButton.frame.size.width / 2.0f;
    [self.selectPhotoButton setImage:[UIImage imageNamed:@"pick-photo-btn"] forState:UIControlStateNormal];
    [self.selectPhotoButton addTarget:self action:@selector(selectPhoto) forControlEvents:UIControlEventTouchUpInside];
    //[self.selectPhotoButton setBackgroundColor:[UIColor colorWithRed:0 green:255/255.0f blue:0 alpha:0.25f]];
    [self.view addSubview:self.selectPhotoButton];


    self.photoView                              = [[UIImageView alloc] init];
    self.photoView.backgroundColor              = [UIColor colorWithRed:255.0f/255.0f green:000.0f/255.0f blue:000.0f/255.0f alpha:0.25f];
    self.photoView.frame                        = CGRectMake(0, 0, 320, 320);
    self.photoView.layer.cornerRadius           = self.photoView.frame.size.width / 2;
    self.photoView.layer.masksToBounds          = YES;
    self.photoView.userInteractionEnabled       = YES;
}

#pragma  mark -
#pragma mark Button's Actions
- (void)takePhotoFunction
{
    self.picker                     = [[UIImagePickerController alloc] init];
    self.picker.delegate            = self;
    self.picker.allowsEditing       = YES;
    self.picker.sourceType          = UIImagePickerControllerSourceTypeCamera;
    self.picker.showsCameraControls = NO;
    //self.picker.view.frame          = self.photoView.bounds;
    self.picker.view.frame          = CGRectMake(0, -50, photoView.frame.size.width, photoView.frame.size.height + 50);
    [self.photoView addSubview:self.picker.view];

    self.takePicture                    = [UIButton buttonWithType:UIButtonTypeSystem];
    self.takePicture.frame              = CGRectMake(self.photoView.frame.size.width/2 - 35, self.photoView.frame.size.height - 70, 70, 70);
    [self.takePicture addTarget:self action:@selector(takePhotoAction:) forControlEvents:UIControlEventTouchUpInside];
    [self.takePicture setBackgroundImage:[UIImage imageNamed:@"take-photo-action"] forState:UIControlStateNormal];
    [self.photoView addSubview:self.takePicture];

    self.switchCameraButton = [[UIButton alloc] init];
    self.switchCameraButton.frame              = CGRectMake(self.photoView.frame.size.width/2 - 35, self.photoView.frame.origin.y, 70, 70);
    [self.switchCameraButton addTarget:self action:@selector(switchCamera:) forControlEvents:UIControlEventTouchUpInside];
    [self.switchCameraButton setBackgroundImage:[UIImage imageNamed:@"reverse-camera-btn"] forState:UIControlStateNormal];
    [self.photoView addSubview:self.switchCameraButton];


    [self.view addSubview:self.photoView];
    isFromAlbum = NO;
}

- (void)selectPhoto
{
    self.picker = [[UIImagePickerController alloc] init];
    self.picker.delegate = self;
    self.picker.allowsEditing = YES;
    self.picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    isFromAlbum = YES;

    [self presentViewController:self.picker animated:YES completion:NULL];
}

-(IBAction)takePhotoAction:(id)sender
{
    [self.picker takePicture];
}

-(IBAction)switchCamera:(id)sender
{
    if (picker.cameraDevice == UIImagePickerControllerCameraDeviceFront)
    {
        picker.cameraDevice = UIImagePickerControllerCameraDeviceRear;
    }
    else if (picker.cameraDevice == UIImagePickerControllerCameraDeviceRear)
    {
        picker.cameraDevice = UIImagePickerControllerCameraDeviceFront;
    }
}

- (UIImage*)rotateUIImage:(UIImage*)sourceImage
{
    CGSize size = sourceImage.size;
    UIGraphicsBeginImageContext(CGSizeMake(size.height, size.width));
    [[UIImage imageWithCGImage:[sourceImage CGImage] scale:1.0 orientation:UIImageOrientationDownMirrored] drawInRect:CGRectMake(0,0,size.height ,size.width)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;
}

#pragma mark -
#pragma mark PickerController Delegate Methods
- (void)imagePickerController:(UIImagePickerController *)myPicker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
    //NSString *mediaType = [info objectForKey: UIImagePickerControllerMediaType];
    UIImage *originalImage, *editedImage, *imageToSave;

    // Handle a still image capture
    //if (CFStringCompare ((CFStringRef) mediaType, kUTTypeImage, 0) == kCFCompareEqualTo)
    if (isFromAlbum == NO)
    {
        editedImage = (UIImage *) [info objectForKey:
                                   UIImagePickerControllerEditedImage];
        originalImage = (UIImage *) [info objectForKey:
                                     UIImagePickerControllerOriginalImage];

        if (editedImage)
        {
            imageToSave = editedImage;
        }
        else
        {
            imageToSave = originalImage;
        }

        // Save the new image (original or edited) to the Camera Roll
        //UIImageWriteToSavedPhotosAlbum (imageToSave, nil, nil , nil);
        [self.takePhotoButton removeFromSuperview];
        [self.switchCameraButton removeFromSuperview];
        [self.selectPhotoButton removeFromSuperview];
        [self.picker.view removeFromSuperview];
        [self.takePicture removeFromSuperview];


        CGFloat minimumSide = fminf(imageToSave.size.width, imageToSave.size.height);
        CGFloat finalSquareSize = 640.;

        //create new drawing context for right size
        CGRect rect = CGRectMake(0, 0, finalSquareSize, finalSquareSize);
        CGFloat scalingRatio = 640.0/minimumSide;
        UIGraphicsBeginImageContext(rect.size);

        //draw
        [imageToSave drawInRect:CGRectMake((minimumSide - originalImage.size.width)*scalingRatio/2., (minimumSide - originalImage.size.height)*scalingRatio/2., originalImage.size.width*scalingRatio, originalImage.size.height*scalingRatio)];

        UIImage *croppedImage = UIGraphicsGetImageFromCurrentImageContext();

        UIGraphicsEndImageContext();


//        if (picker.cameraDevice == UIImagePickerControllerCameraDeviceFront)
//        {
//            [self rotateUIImage:croppedImage];
//        }


        //[self.photoView setImage:imageToSave];
        [self.photoView setImage:croppedImage];
    }
    else
    {
        [self.takePhotoButton removeFromSuperview];
        [self.selectPhotoButton removeFromSuperview];
        UIImage *chosenImage = info[UIImagePickerControllerEditedImage];
        [self.photoView setImage:chosenImage];
        [self.view addSubview:self.photoView];
        [myPicker dismissViewControllerAnimated:YES completion:NULL];
    }
}

- (void)imagePickerControllerDidCancel:(UIImagePickerController *)myPicker
{
    //[picker.view removeFromSuperview];
    [myPicker dismissViewControllerAnimated:YES completion:NULL];
}

#pragma mark -
#pragma mark NavigationController Methods
-(void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:NO];
}

@end